我试图找到一个集合的所有子集,并将它们打印到一个列表中。 但是,我目前遇到了这个错误。你知道吗
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "subset_of_set.py", line 15, in <module>
print subsets(a)
File "subset_of_set.py", line 9, in subsets
return subsets(setys, count + 1, main_list.append(sublist))
File "subset_of_set.py", line 9, in subsets
return subsets(setys, count + 1, main_list.append(sublist))
AttributeError: 'NoneType' object has no attribute 'append'
但是当我在解释器上测试.append
时,它看起来很好。你知道吗
>>> f = []
>>> f.append(3)
>>> f
[3]
可能有些东西我遗漏了或不知道。有人能解释一下吗?谢谢您!你知道吗
我的代码:
def subsets(setys, count = 1,main_list = []):
set_to_list = list(setys)
length_of_set = len(setys)
sublist = []
if count == length_of_set:
return set(main_list)
for n in set_to_list[:count]:
sublist.append(n)
return subsets(setys, count + 1, main_list.append(sublist))
a = [3,5,3,2,5,7,34,2,54,6,7,1,1,1,0,None,3,99,9]
a = set(a)
print subsets(a)
return subsets(setys, count + 1, main_list.append(sublist))
确实是你的错误所在。考虑把它改成这里有两个问题:
第一个
改用:
return main_list
。你知道吗对于,设置需要哈希类型的,而列表不是,因为列表是可变的。您也可以在这里使用元组,它是不可变的。你知道吗
另一个
不能同时向递归追加和传递主列表的引用。比如:
对你有用。你知道吗
输出:
编辑
将此添加到您的退货声明中:
最终输出:
相关问题 更多 >
编程相关推荐