在元素列表上设置操作

ult*_*ron 5 python loops set python-3.x

我有一个包含数千个与此类似的集合的列表:

set_list = [a, b, c, d]
Run Code Online (Sandbox Code Playgroud)

列表中的每个集看起来像这样:

a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 7, 9])
c = set([1, 2, 6, 8, 10, 12, 45])
d = set([11, 3, 23, 3, 4, 44])
Run Code Online (Sandbox Code Playgroud)

我想对列表中的每一组进行设置操作:X-(YUZUAUB ......等),例如,这看起来像这样:在set_list对新元素中的所有元素应用此操作之后像这样:

a = a.difference(b.union(c, d))
b = b.difference(c.union(a, d))
c = c.difference(d.union(b, a))
d = d.difference(a.union(c, b))
Run Code Online (Sandbox Code Playgroud)

我该怎么做到这一点?

NPE*_*NPE 3

一种可能性是利用该multiset模块预先计算 中所有元素的多重集并集set_list,如下所示:

\n\n
from multiset import Multiset\nunion = sum(set_list, Multiset())\nset_list = [s - (union - s) for s in set_list]\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这里,union - s计算Y \xe2\x88\xaa Z \xe2\x88\xaa A \xe2\x88\xaa B...您的符号中的 。

\n\n

请参阅Aran-Fey 的答案,了解仅使用标准库实现的相同方法(更详细)。

\n