gpt4 book ai didi

python - 递归函数中的列表

转载 作者:行者123 更新时间:2023-12-01 03:21:30 25 4
gpt4 key购买 nike

我想访问在递归时创建的列表,但我只能访问第一个列表。

my_data = [1,2,3,4,5]

def my_function (some_data):
some_list = []
for i in range(len(some_data)-1):
some_list.append(some_data[i+1]+some_data[i])

if len(some_list)>1:
my_function(some_list)

return some_list[0]

forty_eight = my_function(my_data)

所以我的想法是,在第一步中,我得到每个邻居元素的总和,所以我得到 [3,5,7,9],接下来我得到 [8,12,16],然后是 [20, 28] 和最后我得到了[48]。

因为最后一个列表有单个元素,我想将其返回到名为“forst_eight”的变量,但问题是,该变量等于三。这意味着在返回命令之后,程序使用我创建的第一个列表,而不是最后一个。我应该怎样做才能使 fourty_eight 等于 48?

最佳答案

您忘记返回递归调用return my_function(some_list)。这很重要,因为您一次又一次地调用 my_function ,直到您的中断条件为真,但您从未返回该值,因此仅真正使用初始列表。

my_data = [1,2,3,4,5]

def my_function (some_data):
some_list = []
for i in range(len(some_data)-1):
some_list.append(some_data[i+1]+some_data[i])

if len(some_list)>1:
return my_function(some_list)

return some_list[0]

forty_eight = my_function(my_data)
print forty_eight # >>> 48

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

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