gpt4 book ai didi

python - 求和嵌套整数列表的嵌套列表的嵌套列表

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

给定一个 Python 列表,其元素是整数或整数列表(只是我们不知道嵌套的深度),我们如何找到列表中每个单独整数的总和?

找到一个嵌套只有一层的列表的总和是相当简单的,例如

[1, [1, 2, 3]]
# sum is 7

但是如果嵌套达到两层、三层或更多层会怎样呢?

[1, [1, [2, 3]]]
# two levels deep

[1, [1, [2, [3]]]]
# three levels deep

上述每种情况的总和都是相同的(即 7)。我认为最好的方法是使用递归,其中基本情况是具有单个整数元素的列表,但除此之外我就卡住了。

最佳答案

您可以使用这个递归解决方案:

from collections import Iterable
def flatten(collection):
for element in collection:
if isinstance(element, Iterable):
for x in flatten(element):
yield x
else:
yield element

演示:

>>> lis = [1, [1, [2, [3]]]]
>>> sum(flatten(lis))
7
>>> lis = [1, [1, 2, 3]]
>>> sum(flatten(lis))
7
>>> lis = [1, [1, [2, 3]]]
>>> sum(flatten(lis))
7

关于python - 求和嵌套整数列表的嵌套列表的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411067/

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