gpt4 book ai didi

Python - 列表元素以某种方式被覆盖

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:57 25 4
gpt4 key购买 nike

我有一个递归函数,它试图找到与某个数字相加的数字组合。我将结果存储在名为 validCombinations

的列表中

代码:

sum = 4
digits = 2
currentDigit = digits
validCombinations = []

#recursion function to find combinations of numbers that add to the sum variable
def recursive(index):
if 10 not in digitList:
if index >= 0:
total = 0
for n in digitList:
total += n
if total == sum:
validCombinations.append(digitList)
digitList[index] += 1
recursive(index-1)
else:
recursive(currentDigit-1)

digitList = []

for n in range(digits,0,-1):
for i in range(n):
digitList.append(0)
recursive(n-1)
digitList = []
currentDigit -= 1

print validCombinations

运行时它输出

[[9, 10], [10, 0]]

当我期望看到这个时

[[2, 2], [4]]

我已经单步执行了代码,似乎它以某种方式覆盖了列表中的元素,但是在我的代码中,我只通过使用 append()< 与 validCombinations 进行交互 方法,应该将其添加到末尾。

我错过了什么还是递归导致了这个?

最佳答案

使用列表:

        if total == sum:
validCombinations.append(list(digitList))

您必须获取digitList的副本,而不是digitList。

关于Python - 列表元素以某种方式被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33458122/

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