如何在列表中查找第一个偶数

时间:2015-10-17 16:28:26

标签: python list loops

如果列表中有偶数,则返回第一个,如果没有偶数,则返回-1。 例如:

>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1

我尝试了一些能够返回第一个但不知道-1的函数。请任何人给我一个建议。

2 个答案:

答案 0 :(得分:2)

您可以使用next() -

def first_even(lst):
    return next((e for e in lst if e%2==0),-1)

示例运行 -

>>> def first_even(lst):
...     return next((e for e in lst if e%2==0),-1)
...
>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1

答案 1 :(得分:0)

您可以使用for else

>>> def first_even(x):
    for i in x:
        if i%2 == 0:
            return i
    else:
        return -1
>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1