我有一个清单,里面有几千套类似的东西:
set_list = [a, b, c, d]
列表中的每一组内容如下所示:
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])
我想对列表中的每一个集合执行set操作:X-(YUZUAUB……etc),例如,这看起来像这样:
对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))
我如何做到这一点?你知道吗
这是使用标准库中的^{} 重新实现NPE's answer:
示例:
一种可能性是利用^{} module 预计算
set_list
中所有元素的多集并,如下所示:这里,
union - s
计算符号中的Y ∪ Z ∪ A ∪ B...
。你知道吗请参见Aran-Fey's answer,了解仅使用标准库实现的相同方法(更详细)。你知道吗
如果我理解正确的话,你需要每个集合的差和其他集合的并集。我会使用循环和
functools.reduce
和operator.or_
:设置
循环并保存结果
相关问题 更多 >
编程相关推荐