
Python 代碼閱讀合集介紹:為什么不推薦Python初學(xué)者直接看項(xiàng)目源碼
本篇閱讀的代碼實(shí)現(xiàn)了搜索整個列表,并返回列表中所有和指定值相等的元素的索引。
本篇閱讀的代碼片段來自于30-seconds-of-python。
index_of_all
def index_of_all(lst, value):
return [i for i, x in enumerate(lst) if x == value]
# EXAMPLES
print(index_of_all([1, 2, 1, 4, 5, 1], 1)) # [0, 2, 5]
print(index_of_all([1, 2, 3, 4], 6)) # []
index_of_all函數(shù)接收一個列表和一個指定值,函數(shù)返回所有和該值相等的元素在列表中的索引。
函數(shù)使用enumerate(lst)獲取一個可迭代的枚舉對象,每次迭代,得到一個元組,包含一個默認(rèn)從0開始的計(jì)數(shù)器和迭代lst獲得的值。也就是說將lst列表,轉(zhuǎn)化成一個個索引值和對應(yīng)的元素所組成的元組。然后使用列表推導(dǎo)式生成所有滿足條件的元素的索引組成的列表。