Python中的 cmp(list) 方法
cmp(list) 是Python 2 中 Number 中指定的方法。
已经使用 cmp() 讨论了整数的比较。但是很多时候,需要比较可以由相似或不同数据类型组成的整个列表。在这种情况下,会出现不同的案例场景,了解它们有时会非常方便。此函数将 2 个列表作为输入,并检查第一个参数列表是否大于、等于或小于第二个参数列表。
Syntax : cmp(list1, list2)
Parameters :
list1 : The first argument list to be compared.
list2 : The second argument list to be compared.
Returns : This function returns 1, if first list is “greater” than second list, -1 if first list is smaller than the second list else it returns 0 if both the lists are equal.
在某些情况下,我们需要确定一个列表是小于还是大于或等于另一个列表。
情况 1:当列表仅包含整数时。
当列表中的所有元素都是整数类型时就是这种情况,因此在进行比较时,从左到右进行逐个比较,如果我们在任何特定索引处获得更大的数字,我们将其称为更大并停止进一步的比较。如果两个列表中的所有元素都相似,并且一个列表比另一个列表大(大小),则认为更大的列表更大。
代码#1:演示 cmp() 仅使用整数。
# Python code to demonstrate
# the working of cmp()
# only integer case.
# initializing argument lists
list1 = [ 1, 2, 4, 3]
list2 = [ 1, 2, 5, 8]
list3 = [ 1, 2, 5, 8, 10]
list4 = [ 1, 2, 4, 3]
# Comparing lists
print "Comparison of list2 with list1 : ",
print cmp(list2, list1)
# prints -1, because list3 has larger size than list2
print "Comparison of list2 with list3(larger size) : ",
print cmp(list2, list3)
# prints 0 as list1 and list4 are equal
print "Comparison of list4 with list1(equal) : ",
print cmp(list4, list1)
输出:
Comparison of list2 with list1 : 1
Comparison of list2 with list3(larger size) : -1
Comparison of list4 with list1(equal) : 0
情况 2:当列表包含多种数据类型时。
一种以上数据类型的情况,例如。 字符串包含在字符串中, 字符串被认为大于 integer,这样所有数据类型都按字母顺序排序,以防比较。在这种情况下,尺寸规则保持不变。
代码 #2:使用多种数据类型演示 cmp()。
# Python code to demonstrate
# the working of cmp()
# multiple data types
# initializing argument lists
list1 = [ 1, 2, 4, 10]
list2 = [ 1, 2, 4, 'a']
list3 = [ 'a', 'b', 'c']
list4 = [ 'a', 'c', 'b']
# Comparing lists
# prints 1 because string
# at end compared to number
# string is greater
print "Comparison of list2 with list1 : ",
print cmp(list2, list1)
# prints -1, because list3
# has an alphabet at beginning
# even though size of list2
# is greater, Comparison
# is terminated at 1st
# element itself.
print "Comparison of list2 with list3(larger size) : ",
print cmp(list2, list3)
# prints -1 as list4 is greater than
# list3
print "Comparison of list3 with list4 : ",
print cmp(list3, list4)
输出:
Comparison of list2 with list1 : 1
Comparison of list2 with list3(larger size) : -1
Comparison of list3 with list4 : -1