python - 返回列表的第一个数字

标签 python list generator

所以,我正在尝试创建一个脚本,其中返回确定列表的第一个偶数。如果列表不包含偶数,则返回 -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/

相关文章:

python - 以django形式获取对象列表

java - 构造函数和数组列表

javascript - 强制产生的函数出错以进行单元测试

java - 包含最大元素的列表

list - 通过递归扩展 Prolog 目标?

Python:识别创建生成器的生成器函数

javascript - 生成器函数的局部变量存储在堆栈还是堆上?

python - 如何使用 Python OpenCV 查找单词并将其裁剪成单个图像?

Python:将 3D 数组中的值存储到 csv

python - 如何在 django 中编写自定义装饰器?