Python Tuple cmp() 方法用于比较两个元组的元素。
元组的元素可以是相同或不同的数据类型。如果元素属于同一类型,则比较它们并返回结果。如果元素是不同的类型,请检查它们是否是数字。
在这种方法进行的比较中,有两种不同的情况。它们如下 -
案例 1:假设元组仅包含数字,该方法从左到右比较元素。如果在 Tuples 中遇到更大的数字,则包含它的 Tuples 将被声明为 greater 并停止进一步的比较。但是,如果所有元素都相等,则 Tuples 被声明为相等。
案例 2:如果元组中有多个数据类型,该方法将根据这些数据类型和排序顺序对其进行比较。例如,字符串类型大于任何数字类型,因此,如果元组包含字符串,则它更大。
注意:此方法仅在 Python 2.x 中可执行,在 Python 3.x 中不起作用。
语法
以下是 Python Tuple cmp() 方法的语法 -
cmp(tuple1, tuple2)
参数
- tuple1 − 这是要比较的第一个元组
- tuple2 − 这是要比较的第二个元组
返回值
如果元素属于同一类型,则执行 compare 并返回结果。如果元素是不同的类型,请检查它们是否是数字。
- 如果是数字,则根据需要执行数字强制并进行比较。
- 如果任一元素是数字,则另一个元素是 “较大” (数字是 “最小”) 。
- 否则,类型将按名称的字母顺序排序。
如果我们到达其中一个元组的末尾,则较长的元组为 “更大”。如果我们用尽两个元组并共享相同的数据,则结果是平局,这意味着返回 0。
例以下示例显示了 Python Tuple cmp() 方法的用法。该程序仅在 Python 2.x 版本中执行。
tuple1, tuple2 = (123, 'xyz'), (456, 'abc')
print cmp(tuple1, tuple2)
print cmp(tuple2, tuple1)
tuple3 = tuple2 + (786,);
print cmp(tuple2, tuple3)
当我们运行上述程序时,它会产生以下结果——
-1
1
-1
1
-1
例
如果用户想在 Python 3.x 解释器中执行此方法,他们可以声明一个用户定义的函数,如给定示例所示。此方法的工作方式类似于内置的 cmp() 方法。
def cmp(x, y):
return (x > y) - (x < y)
#x > y
x = (123)
y = (112)
print("The cmp value for x>y is : ",cmp(x, y),"\n")
#x<y
x = (123, 'xyz')
y = (456, 'abc')
print("The cmp value for x<y is : ",cmp(x, y),"\n")
#x=y
x = (76)
y = (76)
print("The cmp value for x=y is : ",cmp(x, y))
#odd and even
k = 16
if cmp(0, k % 2):
print("\n","The given number",k,"is odd number ")
else:
print("\n","The given number",k,"is even number")
k= 31
if cmp(0, k % 2):
print("\n","The given number",k,"is odd number")
else:
print("\n","The given number",k,"is even number")
运行上面的代码会得到以下结果 -
The cmp value for x>y is : 1
The cmp value for x<y is : -1
The cmp value for x=y is : 0
The given number 16 is even number
The given number 31 is odd number
The cmp value for x<y is : -1
The cmp value for x=y is : 0
The given number 16 is even number
The given number 31 is odd number