我试图找到唯一值b / w 2列表,但这个逻辑似乎不起作用
x = [1,2,3,4]
f = [1,11,22,33,44,3,4]
for element in f:
if element in x:
f.remove(element)
print f
期望的输出
[11, 22, 33, 44]
实际输出
[11, 22, 33, 44, 4]
Get only unique elements from two lists python
同样问这里 解决方案:
x = [1,2,3,4]
f = [1,11,22,33,44,3,4]
res = list(set(x+f))
print(res)
[1, 2, 3, 4, 33, 11, 44, 22]
你可以看到它添加了1,2,3,4而不是我需要的输出
答案 0 :(得分:4)
在完成关闭和重新开放的麻烦后,我觉得有人应该回答这个问题。
有不同的方法可以达到预期的效果:
列表理解:[i for i in f if i not in x]
。可能效率较低但保留订单。积分转到Chris_Rands(上面的评论)。
设置操作:set(f) - set(x)
。对于较大的列表可能更有效但不保留顺序。 Gredit前往mpf82。根据{{3}}的指示,这也会删除f
中的重复项。