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

How to get values unique to each list for three lists?

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

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

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)

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

谢谢。

这看起来像是 Pythonsets 的工作。

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