gpt4 book ai didi

python - 将列表中所有元素相加但不包括第一个偶数的函数

转载 作者:行者123 更新时间:2023-11-28 19:53:59 25 4
gpt4 key购买 nike

我正在尝试编写一个 python 函数,它将列表中的所有元素相加,但不包括第一个偶数。该功能需要通过以下测试:

from test import testEqual

testEqual(sum_of_initial_odds([1,3,1,4,3,8]), 5)
testEqual(sum_of_initial_odds([6,1,3,5,7]), 0)
testEqual(sum_of_initial_odds([1, -7, 10, 23]), -6)
testEqual(sum_of_initial_odds(range(1,555,2)), 76729)

我尝试了以下方法:

import random

lst = []
def sum_of_initial_odds(nums):
sum = 0
#test if element is odd number - if it's odd, add it to the previous integer
for i in lst:
if i % 2 != 0:
sum = sum + i
return sum
#test if element is even number - if it's even, don't include it and break code
else:
if i % 2 == 0:
break:

我目前遇到解析错误:

ParseError: bad input on line 11

这是一行:

else: 

我还能如何编写此代码,以便它在列表中添加元素,但不包括第一个偶数,而不会出现解析错误?

最佳答案

您可以使用 itertools.takewhile 轻松完成此操作:

>>> import itertools
>>> sum(itertools.takewhile(lambda x: x % 2 == 1, [1,3,1,4,3,8]))
5

takewhile 将在谓词 x % 2 == 1True 时从给定序列中生成元素,即它会得到所有元素数字直到第一个偶数。然后 sum,对这些值求和。

关于python - 将列表中所有元素相加但不包括第一个偶数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921991/

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