📜  Python中的 cmp(list) 方法

📅  最后修改于: 2022-05-13 01:55:38.487000             🧑  作者: Mango

Python中的 cmp(list) 方法

cmp(list) 是Python 2 中 Number 中指定的方法。

已经使用 cmp() 讨论了整数的比较。但是很多时候,需要比较可以由相似或不同数据类型组成的整个列表。在这种情况下,会出现不同的案例场景,了解它们有时会非常方便。此函数将 2 个列表作为输入,并检查第一个参数列表是否大于、等于或小于第二个参数列表。

在某些情况下,我们需要确定一个列表是小于还是大于或等于另一个列表。

情况 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