📜  Python cmp方法

📅  最后修改于: 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