📅  最后修改于: 2020-07-15 05:13:00             🧑  作者: Mango
cmp(list)是Python 2中Number中指定的方法。
已经使用cmp()讨论了整数的比较。但是很多时候,需要比较可以由相似或不同数据类型组成的整个列表。在这种情况下,会出现不同的案例场景,有时了解它们会非常方便。
此函数将2个列表作为输入,并检查第一个参数列表是否大于,等于或小于第二个参数列表。
语法:cmp(列表1,列表2)
参数:
list1:要比较的第一个参数列表。
list2:要比较的第二个参数列表。
返回值:如果第一个列表“大于"第二个列表,则此函数返回1;如果第一个列表小于第二个列表,则返回-1;否则,如果两个列表相等,则返回0。
在某些情况下,我们需要确定一个列表是小于还是大于或等于另一个列表。
情况1: 当list仅包含整数时。
当列表中的所有元素均为整数类型时,就是这种情况,因此在进行比较时,从左到右进行逐个数字比较,如果在任何特定索引处获得更大的数字,则称其更大并停止进一步的比较。如果两个列表中的所有元素都相似,并且一个列表比另一个列表大(大小),则认为更大的列表更大。
代码1:仅使用整数演示cmp()。
# Python代码演示cmp()仅整数情况下的工作。
# 初始化参数列表
list1 = [ 1, 2, 4, 3]
list2 = [ 1, 2, 5, 8]
list3 = [ 1, 2, 5, 8, 10]
list4 = [ 1, 2, 4, 3]
# 比较清单
print "list2与list1的比较 : ",
print cmp(list2, list1)
# 打印-1,因为list3的大小大于list2的大小
print "list2与list3的比较(较大) : ",
print cmp(list2, list3)
# 打印0,因为list1和list4相等
print "Comparison of list4 with list1(equal) : ",
print cmp(list4, list1)
输出:
list2与list1的比较 : 1
list2与list3的比较(较大) : -1
Comparison of list4 with list1(equal) : 0
情况2: 当list包含多个数据类型时。
多个数据类型的情况,例如 字符串包含在字符串中,认为字符串大于整数,通过这种方式,在进行比较的情况下,所有数据类型均按字母顺序排序。在这种情况下,大小规则保持不变。
代码2:使用多种数据类型演示cmp()。
# Python代码演示cmp()多种数据类型的工作
# 初始化参数列表
list1 = [ 1, 2, 4, 10]
list2 = [ 1, 2, 4, 'a']
list3 = [ 'a', 'b', 'c']
list4 = [ 'a', 'c', 'b']
# 比较列表会打印1,因为末尾的字符串比数字的字符串大
print "list2与list1的比较 : ",
print cmp(list2, list1)
# 打印-1,因为即使list2的大小更大,list3的开头也有一个字母,所以比较在第一个元素本身处终止。
print "list2与list3的比较(较大) : ",
print cmp(list2, list3)
# 打印-1,因为list4大于list3
print "list3与list4的比较 : ",
print cmp(list3, list4)
输出:
list2与list1的比较 : 1
list2与list3的比较(较大) : -1
list3与list4的比较 : -1