Python List cmp() 方法比较两个列表的元素。这些列表可以由相似或不同数据类型的元素组成。如果元素是相同类型,则此方法按字典顺序比较它们并返回结果;但是如果元素是不同的类型,它会检查不同的比较情况。它们如下 -
- 如果元素是数字,则根据需要执行数字强制转换并进行比较。
- 如果任一元素是数字,则另一个元素被视为“较大”(数字是“最小”)。
- 否则,类型将按名称的字母顺序排序。
- 如果我们在另一个列表之前到达其中一个列表的末尾,则较长的列表是 “larger”。
注意:此方法仅在 Python 2.x 中可执行,在 Python 3.x 中不起作用。
语法
以下是 Python List cmp() 方法的语法 -
cmp(list1, list2)
参数
- list1 − 这是第一个要比较的列表。
- list2 − 这是第二个要比较的列表。
返回值
如果第一个列表大于第二个列表,则该方法返回 1,如果小于第二个列表,则返回 -1;当两个列表相等时,将返回 0。
例以下示例显示了 Python List cmp() 方法的用法。该程序仅在 Python 2.x 版本中执行。
list1, list2 = [123, 'xyz'], [456, 'abc']
print cmp(list1, list2)
print cmp(list2, list1)
list3 = list2 + [786];
print cmp(list2, list3)
当我们运行上述程序时,它会产生以下结果——
-1
1
-1
1
-1
例
如果用户想在 Python 3.x 解释器中执行此方法,他们可以声明一个用户定义的函数,如给定示例所示。此方法的工作方式类似于内置的 cmp() 方法。
def cmp(x, y):
return (x > y) - (x < y)
#x > y
x = 5
y = 3
print("The cmp value for x>y is : ",cmp(x, y),"\n")
#x<y
x = 7
y = 9
print("The cmp value for x<y is : ",cmp(x, y),"\n")
#x=y
x = 13
y = 13
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