当set本身不可用时,如何递归添加到集合?
s = set()
if root.children == []:
if str(root.value) not in s:
s.add(str(root.value))
return s
else:
if str(root.value) not in s:
s.add(str(root.value))
for child in root.children:
s.add(distinct_leaf_helper(child))
return s
这将导致TypeError
答案 0 :(得分:1)
如果您确实要将子项添加为集,可以使用frozenset
:
s.add(frozenset(distinct_leaf_helper(child)))
虽然我猜你的意图是添加子集中的所有元素,在这种情况下你可以使用.update()
将给定iterable的元素添加到集合中:
s.update(distinct_leaf_helper(child))