两个列表中的缺失值和多余值
我有两个列表:
list1 = ['1','2','3','4','5','6']
list2 = ['4','5','6','7','8']
现在我想找出在第二个列表中缺少的值和多出来的值。
输出结果应该是:
Missing value = 1,2,3
Additional Value = 7,8
1 个回答
19
使用Python中的集合来列出不同之处:
set(list1).difference(list2)
set(list2).difference(list1)
结果:
>>> print 'Missing values =', ','.join(set(list1).difference(list2))
Missing values = 1,3,2
>>> print 'Additional values =', ','.join(set(list2).difference(list1))
Additional values = 7,8
如果顺序很重要,那么你仍然需要使用集合:
set1, set2 = set(list1), set(list2)
[i for i in list1 if i not in set2]
[i for i in list2 if i not in set1]
结果:
>>> print 'Missing values =', ','.join([i for i in list1 if i not in set2])
Missing values = 1,2,3
>>> print 'Missing values =', ','.join([i for i in list2 if i not in set1])
Additional values = 7,8