【发布时间】:2016-01-16 07:03:38
【问题描述】:
如果列表中有偶数,则返回第一个,如果没有偶数,则返回-1。 比如这样:
>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1
我尝试了一些能够返回第一个偶数但不知道 -1 的函数。请任何人都可以给我一个建议。
【问题讨论】:
如果列表中有偶数,则返回第一个,如果没有偶数,则返回-1。 比如这样:
>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1
我尝试了一些能够返回第一个偶数但不知道 -1 的函数。请任何人都可以给我一个建议。
【问题讨论】:
你可以使用forelse
>>> 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
【讨论】:
if i > 0 and i%2 == 0:
您可以为此使用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
【讨论】:
0 不是偶数? math.stackexchange.com/questions/1113709/is-zero-an-even-number ?