在为这样的列表查找排列时:
def permut(nums: List[int]) -> List[List[int]]:
result = []
def perm(a, k=0):
if k == len(a):
result.append(a)
else:
for i in range(k, len(a)):
a[k], a[i] = a[i], a[k]
perm(a, k + 1)
a[k], a[i] = a[i], a[k]
perm(nums)
return result
这不起作用,因为我a
每次都在覆盖,结果只是所有指向的项目列表a
我可以将该行更改为:
result.append([item for item in a])
但这似乎只是一种从 a 创建新列表的技巧。在递归函数中处理追加到列表的更好方法是什么?