如果列表中有偶數,請返回第一個,如果沒有偶數,則返回-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。請任何人都可以給我一個建議。
您可以使用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
謝謝,我剛剛發現這個問題我問了之後問題:( – Polsop
這個功能的一個嚴重問題是它會處理0甚至!嘗試first_even([int(i)for list in'('038208493759824037493251836')] – SIslam
@SIslam是什麼讓你覺得'0'不是偶數? http://math.stackexchange.com/questions/1113709/is-zero-an-even-number? –