所以,我正在尝试创建一个脚本,其中返回确定列表的第一个偶数。如果列表不包含偶数,则返回 -1。
起初我尝试使用 str.find()
,但我不知道如何让它工作。
有帮助吗?
from typing import List
def f_even(items: List[int]) -> int:
"""
>>>f_even([1, 3, 4, 6])
4
>>>f_even([1, 3])
-1
"""
even_numbers = []
even = even_numbers[0]
for number in items:
if number % 2 == 0:
even_numbers.append(number)
return even
现在我得到一个错误,其中 even = even_numbers[0];索引超出范围。我觉得我使这段代码复杂化了很多。
最佳答案
在生成器上使用 next()
并在非偶数情况下返回 -1
。
lst = [1, 3, 4, 6]
print(next((x for x in lst if x % 2 == 0), -1))
# 4
在特殊情况下(没有平衡):
lst = [1, 3, 3, 9]
print(next((x for x in lst if x % 2 == 0), -1))
# -1
关于python - 返回列表的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789693/