我试图在列表中创建自定义排列(主要是在python中使用递归)。现在,当我运行我的代码时,我收到此错误:
TypeError: 'NoneType' object is not iterable
在我添加列表复制之前,我得到了这个:
AttributeError: 'NoneType' object has no attribute 'append'
def findPermutations (size, max, curr_perm):
if not curr_perm or len(curr_perm) < size:
for i in range(1,max):
new_arr = list(curr_perm)
findPermutations(size, max, new_arr.append(i))
else:
return curr_perm
print(findPermutations(2,3,[]))
我希望能回归一堆或排列。我在这做错了什么?
您需要在调用递归函数之前附加项列表。以下是工作代码,如果您有任何疑问,请告诉我,我将非常乐意为您提供帮助。
def findPermutations (size, max, curr_perm):
if not curr_perm or len(curr_perm) < size:
for i in range(1,max):
new_arr = list(curr_perm)
new_arr.append(i)
print(new_arr)
findPermutations(size, max, new_arr)
else:
return curr_perm
findPermutations(2,3,[])
**Result:**
[1]
[1, 1]
[1, 2]
[2]
[2, 1]
[2, 2]
解决你的代码:
new_arr.append(i)
findPermutations(size, max, new_arr)