我有三个列表,我希望得到每个列表中唯一的值列表。
例如,如果我有三个列表:
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