簡體   English   中英

Python 生成排列時添加到列表的錯誤方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM