gpt4 book ai didi

python - 如何将此生成器函数转换为 lambda 表达式

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

def f(nums):
sum = 0
for i in nums:
sum += i
yield sum

我试图根据 args nums(类型列表),使用列表理解来启动一个新列表,其中每个索引的值都是以前的累积。

最终结果看起来像[i for i in f(nums)]

有没有办法将函数转换为 lambda 表达式?或任何其他使其成为一条线?

最佳答案

这是一种方法:

nums=[1,2,3,4]

[sum(nums[:idx+1]) for idx, i in enumerate(nums)]

输出:

[1, 3, 6, 10]

另一种方法是使用 itertools.accumulate正如@Blckknght 所建议的那样。

from itertools import accumulate

list(accumulate(nums))

输出:

[1, 3, 6, 10]

关于python - 如何将此生成器函数转换为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51317541/

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