gpt4 book ai didi

python - 使用列表理解对列表中的奇数求和,for 和 if 在一行中

转载 作者:行者123 更新时间:2023-11-28 19:42:54 27 4
gpt4 key购买 nike

我正在学习 Python,并且正在尝试一些练习。我正在尝试使用列表理解对 0 到 9 的所有奇数求和,for 和 if 在一行中。

我尝试了以下代码:

for idx in range(10): s = 0 if idx == 0 else s = [(i % 2) for i in range(10)][idx] * range(10)[idx] + s

但我收到以下错误:

SyntaxError: can't assign to conditional expression

我不是很明白。

我们将不胜感激您的建议。

最佳答案

非常短的一行:

sum(range(1,10,2))

但真正的公式适用于任何 n:

((n+1)//2)**2

有了它,您可以非常快速地计算出非常大的 n 的总和。

回到正题,你不能使用列表推导式进行累加,或者做起来非常困难/hacky,所以这里需要sum。因此,最合乎逻辑的 if 要求是“使用理解符号和 if”:

sum(x for x in range(1,10) if x % 2)

请注意,在这种情况下无需添加额外的 []。这是一个生成器理解(避免生成额外的listsum 不需要一次拥有所有信息。

关于python - 使用列表理解对列表中的奇数求和,for 和 if 在一行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697541/

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