gpt4 book ai didi

python - 当其中一些项目也是列表时,如何对列表中的项目求和?

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

我正在尝试编写一个函数来对列表中的项目求和,包括列表本身的项目(或列表列表...)

def sum_list_recursive(lst):
sum = 0
for i in range(len(lst)):
if type(lst[i]) == "list":
sum = sum + sum_list_recursive(lst[i])
else:
sum = sum + lst[i]
return sum

错误:

returns: "*Traceback (most recent call last):
File "C:/Users", line 13, in <module>
sum_list_recursive([1,2,[3,4],[5,6]])
File "C:/Users", line 10, in sum_list_recursive
sum = sum + lst[i]
TypeError: unsupported operand type(s) for +: 'int' and 'list'*"

我不知道为什么或如何解决它。

提前致谢!

最佳答案

def sum_list_recursive (lst):
return sum(sum_list_recursive(i) if isinstance(i, list) else i for i in lst)

my_list = [1, [2, [3, 4], 5, [6, 7, 8]], [9, 10]]
print (sum_list_recursive(my_list))
# --> 55

这可能是解决这个问题的最简洁、最“pythonic”的方法。

顺便说一下,你的代码中的实际错误是 type() 返回一个类型(即一个类),而不是一个字符串。但是在您的 if 语句中,您将它与字符串 "list" 进行比较,因此结果始终为 False。

关于python - 当其中一些项目也是列表时,如何对列表中的项目求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67198944/

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