我希望通过比较A和B列表来打印缺少的值。
例如,当我print(a)
时,它会告诉我[1,2,5,7,8,9,11,12]
丢失并且与A不同。
A = ['0', '0', '3', '4', '6', '6', '6', '6', '6', '6', '10', '10', '10']
B = ['1', '10', '2', '5', '0', '3', '4', '7', '8', '9', '6', '11', '12']
我试过了,但是行不通。
a = []
for x in A:
for y in B:
if y != u:
a.append(y)
有一种简单的方法吗?我一直在尝试学习更多。希望有人可以提供帮助。
答案 0 :(得分:5)
使用设置差异:
>>> A = ['0', '0', '3', '4', '6', '6', '6', '6', '6', '6', '10', '10', '10']
>>> B = ['1', '10', '2', '5', '0', '3', '4', '7', '8', '9', '6', '11', '12']
>>> set(B)-set(A)
{'5', '9', '7', '2', '12', '11', '8', '1'}
答案 1 :(得分:2)
您可以使用if语句:
for elt in B:
if elt not in A:
print(elt)
edit:可能不如上面的设置有效。但我将其保留在那里,以便您可以了解for循环中的“ not in”运算符;)
答案 2 :(得分:1)
反解决方案也有效-
from collections import Counter
C = Counter()
A = ['0', '0', '3', '4', '6', '6', '6', '6', '6', '6', '10', '10', '10']
B = ['1', '10', '2', '5', '0', '3', '4', '7', '8', '9', '6', '11', '12']
C.update(A)
C.update(B)
D = [k for k, v in C.iteritems() if v == 1]
# OP ['11', '12', '1', '2', '5', '7', '9', '8']