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)
我该怎么做到这一点?
一种可能性是利用该multiset模块预先计算 中所有元素的多重集并集set_list,如下所示:
from multiset import Multiset\nunion = sum(set_list, Multiset())\nset_list = [s - (union - s) for s in set_list]\nRun Code Online (Sandbox Code Playgroud)\n\n在这里,union - s计算Y \xe2\x88\xaa Z \xe2\x88\xaa A \xe2\x88\xaa B...您的符号中的 。
请参阅Aran-Fey 的答案,了解仅使用标准库实现的相同方法(更详细)。
\n