gpt4 book ai didi

python - 在递归函数中附加一个带有列表的空列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:58 25 4
gpt4 key购买 nike

def permute(nums):
result = []
get_permute([], nums, result)
return result

def get_permute(current, num, result):

if not num:
result.append(current+[])

for i, v in enumerate(num):
current.append(num[i])
get_permute(current, num[:i] + num[i + 1:], result)
current.pop()

if __name__ == "__main__":

r = permute([1,2,3])

for perm in r:
print(perm)

current + []result.append(current+[]) 中做了什么,如果我删除 +[] 它打印空白列表.

最佳答案

它正在复制列表。当您删除它时,您会遇到 List of lists changes reflected across sublists unexpectedly问题,因为外部列表包含对同一列表的许多引用,而不是对许多不同列表的引用。

您应该能够将其替换为 current.copy()(使用 Python >= 3.3)或 list(current) 以避免 future 读者出现类似的混淆。 (有 a lot of ways to copy a list 。选择你喜欢的并坚持下去。)

关于python - 在递归函数中附加一个带有列表的空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com