[英]Python incorrect ways to add to list when generating permutations
在這個例子中,為什么會產生正確的結果:
nxt = path + [nums[i]]
但不是:
nxt = path ; nxt += [nums[i]]
nxt = path ; nxt.append(nums[i])
def permute(nums):
def dfs(nums, path):
if not nums: # empty, done with path
all_perms.append(path)
return
for i in range(len(nums)):
nxt = path + [nums[i]]
# nxt = path ; nxt += [nums[i]]
# nxt = path ; nxt.append(nums[i])
print(nxt)
dfs(nums[:i] + nums[i+1:], nxt)
all_perms = []
dfs(nums, [])
return all_perms
在這個例子中,為什么會產生正確的結果:
nxt = path + [nums[i]]
這使path
不變。
但不是:
nxt = path ; nxt += [nums[i]]
nxt = path ; nxt.append(nums[i])
這將nums[i]
附加到顯然不正確的path
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.