Python 代碼閱讀合集介紹:為什么不推薦Python初學者直接看專案原始碼
本篇閱讀的代碼實作了在串列中尋找符合條件的元素,
本篇閱讀的代碼片段來自于30-seconds-of-python,
find
def find(lst, fn):
return next(x for x in lst if fn(x))
# EXAMPLES
find([1, 2, 3, 4], lambda n: n % 2 == 1) # 1
find函式接收一個串列和一個判別函式,回傳第一個使判別函式為真的元素,
函式使用串列推導式和next()來回傳lst中第一個 是判別函式fn的回傳為True的元素,
next(iterator[, default])獲取迭代器的下一個元素,如果迭代器耗盡,則回傳給定的 default,如果沒有默認值則觸發 StopIteration
find_last
類似的,可以實作find_last函式,使用lst[::-1]切片形式,將串列倒序,然后使用相同的方法獲取使判別函式fn為True的元素,
def find_last(lst, fn):
return next(x for x in lst[::-1] if fn(x))
# EXAMPLES
find_last([1, 2, 3, 4], lambda n: n % 2 == 1) # 3
>>> lst = [1,2,3,4,5,6]
>>> lst[::-1]
[6, 5, 4, 3, 2, 1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/387702.html
標籤:Python
上一篇:Python游戲開發,pygame模塊,Python實作五子棋聯機對戰小游戲
下一篇:Python字典查找性能
