python中比较两个列表的实例方法
cmp()方法用于比较两个列表的元素。
cmp()方法语法:
cmp(list1,list2)
参数:
list1--比较的列表。list2--比较的列表。
返回值:
如果比较的元素是同类型的,则比较其值,返回结果。
如果两个元素不是同一种类型,则检查它们是否是数字。
如果是数字,执行必要的数字强制类型转换,然后比较。如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所有元素都是相等的,那么结果就是个平局,就是说返回一个0。
以下实例展示了cmp()函数的使用方法:
#!/usr/bin/python list1,list2=[123,'xyz'],[456,'abc'] printcmp(list1,list2); printcmp(list2,list1); list3=list2+[786]; printcmp(list2,list3)
Python3不在支持cmp方法:
可用方法有:
表达式减(-)法:
print((a>b)-(aoperator模块比较运算:
importoperator a=[1,2,3,4,5] b=[1,2,3,4,5,6] c=[1,2,3,4,5] print(operator.lt(a,b))#=>True,小于< print(operator.gt(a,b))#=>False,大于> print(operator.eq(a,c))#=>True,等于== print(operator.ne(b,a))#=>True,不等于!= print(operator.le(a,b))#=>True,小于等于<= print(operator.ge(b,a))#=>True,大于等于>=扩展学习:
两个列表,随机产生4个不相等的数,计算一下,相同位置上的元素相等的个数,用k1表示。
b列表中的元素在a列表中,但位置不相同,有多少个,用k2表示。
例如:
a=[0,4,7,3]
b=[7,1,0,3]k1=1(只有第4个元素相等,k1=1)
k2=2(两个列表中都有0和7,但位置不同,k2=2)a=[] b=[] while(len(a)!=4): x=randint(0,9) ifxnotina: a.append(x) while(len(b)!=4): x=randint(0,9) ifxnotinb: b.append(x) print(a) print(b) print() k1=k2=0 foriinrange(4): ifa[i]==b[i]: k1+=1 ifb[i]inaandb[i]!=a[i]: k2+=1 print('k1=',k1) print('k2=',k2)