如何为三个列表获取每个列表唯一的值



我有三个列表,我希望得到每个列表中唯一的值列表。

例如,如果我有三个列表:

a = [1, 2, 3]
b = [2, 4, 5]
c = [3, 2, 6]

预期的输出将保留列表中不在其他两个列表中的元素:

only_in_a = [1]
only_in_b = [4,5]
only_in_c = [6]

我一直在运行一个简单的for循环到循环的数组:

for i in a:
if i not in b:
if i not in c:
print (i)

我将输出通过管道传输到他们自己的文本文件中。然而,我的输入列表高达数千万,而且这个过程很慢。有人对更快、更有效的方法有什么建议吗?

谢谢。

这看起来像是Python集的作业。

set_a = set(a)
set_b = set(b)
set_c = set(c)
only_in_a = set_a - set_b - set_c
only_in_b = set_b - set_a - set_c
only_in_c = set_c - set_a - set_b

使用集合?

a = {1, 2, 3}
b = {2, 4, 5}
c = {3, 2, 6}
only_in_a = a-b-c
only_in_b = b-a-c
only_in_c = c-a-b

最新更新