-1

所以给 then 集{'a', 'b', 'c'}, {'c', 'd'}, {'d','e','f'}. 我想得到类似 list 的东西[{'a', 'b', 'c'}, {'d'}, {'e','f'}]。我的第一个猜测是,这将有助于递归。第 1 组,第 2 组 - 第 1 组,第 3 组 - (第 1 组和第 2 组)。我认为我在递归函数方面的经验更多的是沿另一个方向移动的阶乘示例。提前感谢您的帮助。

4

2 回答 2

3

可以通过递归来做到这一点,但不是必需的。迭代很简单:

>>> sets = {'a', 'b', 'c'}, {'c', 'd'}, {'d','e','f'}
>>> unique = []
>>> seen = set()
>>> for s in sets:
...  unique.append(s - seen)
...  seen |= s
... 
>>> seen
set(['a', 'c', 'b', 'e', 'd', 'f'])
>>> unique
[set(['a', 'c', 'b']), set(['d']), set(['e', 'f'])]
于 2013-07-25T20:07:50.667 回答
0

我喜欢 python 因为它的列表和集合理解。我认为这个问题突出了此功能的便利性。

seta = {'a', 'b', 'c'}
setb = {'c', 'd'}
setc = {'d','e','f'}

list_of_sets = [seta, {b for b in setb: if b not in seta}, {c for c in setc: if c not in seta}]
于 2013-07-25T20:08:37.843 回答