ran*_*ght 16 python comparison
我有两个保证长度相同的列表.我想比较列表中的相应值(第一项除外)并打印出不匹配的值.我这样做是这样的
i = len(list1)
if i == 1:
print 'Nothing to compare'
else:
for i in range(i):
if not (i == 0):
if list1[i] != list2[i]:
print list1[i]
print list2[i]
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?(Python 2.x)
Miz*_*zor 21
list1=[1,2,3,4]
list2=[1,5,3,4]
print [(i,j) for i,j in zip(list1,list2) if i!=j]
Run Code Online (Sandbox Code Playgroud)
输出:
[(2, 5)]
Run Code Online (Sandbox Code Playgroud)
编辑:轻松扩展以跳过n个第一项(相同输出):
list1=[1,2,3,4]
list2=[2,5,3,4]
print [(i,j) for i,j in zip(list1,list2)[1:] if i!=j]
Run Code Online (Sandbox Code Playgroud)
没有人提到过滤器:
a = [1, 2, 3]
b = [42, 3, 4]
aToCompare = a[1:]
bToCompare = b[1:]
c = filter( lambda x: (not(x in aToCompare)), bToCompare)
print c
Run Code Online (Sandbox Code Playgroud)