gpt4 book ai didi

python - 列表乘积的递归函数不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:36 24 4
gpt4 key购买 nike

我正在尝试创建一个函数,将列表中的每个项目相乘并返回总数。该函数在内存用完之前不会停止运行。有人可以向我解释为什么这不起作用吗?

items = [1,2,3,4,10]

def mult2(items):
if not items:
return 0
return mult2(items[0]) * mult2(items[1:])

mult2(items)

最佳答案

这里有几个错误

  1. 你的基本情况是错误的。基本情况必须是当列表缩减为单个元素并且您需要返回 1 而不是 0 时。
  2. 您需要发送包含单个元素的列表,而不是单独的单个元素以满足您的基本情况。

更正代码

def mult2(items):
if len(items)==1:
return items[0]
return mult2([items[0]]) * mult2(items[1:])

演示

>>> items = [1,2,3,4,10]
>>>
>>> def mult2(items):
... if len(items)==1:
... return items[0]
... return mult2([items[0]]) * mult2(items[1:])
...
>>> print(mult2(items))
240

关于python - 列表乘积的递归函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943301/

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