2个列表之间的唯一值

时间:2017-07-14 08:24:45

标签: python list unique

我试图找到唯一值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而不是我需要的输出

1 个答案:

答案 0 :(得分:4)

在完成关闭和重新开放的麻烦后,我觉得有人应该回答这个问题。

有不同的方法可以达到预期的效果:

  1. 列表理解:[i for i in f if i not in x]。可能效率较低但保留订单。积分转到Chris_Rands(上面的评论)。

  2. 设置操作:set(f) - set(x)。对于较大的列表可能更有效但不保留顺序。 Gredit前往mpf82。根据{{​​3}}的指示,这也会删除f中的重复项。