Python - 獲取大於 K 的第一個元素的索引


Python 列表中元素的值並非總是按排序順序排列。此外,我們可能只對大於特定值的一些值感興趣。在本文中,我們將瞭解如何獲取…

使用列舉

使用列舉,我們可以同時獲取列表中元素的索引和值。然後,我們應用大於條件來僅獲取滿足條件的第一個元素。下一個函式將逐個遍歷每個列表元素。

示例

 線上演示

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using next() + enumerate()
result = next(k for k, value in enumerate(List)
if value > 25)print("Index is: ",result)

執行上述程式碼將得到以下結果

輸出

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

使用 filter 和 lambda 函式

在下一個示例中,我們使用 lambda 函式將給定值與每個索引處的的值進行比較,然後過濾掉滿足所需條件的值。從滿足所需條件的元素列表中,我們選擇索引 0 處的第一個元素作為答案。

示例

 線上演示

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using filter() + lambda
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ",List.index(result))

執行上述程式碼將得到以下結果

輸出

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

使用 map 和 lambda

在下一個示例中,我們採用類似的方法,但使用 map 而不是 filter。map 函式用於遍歷每個元素。每當條件為真時,就會捕獲該索引。

示例

 線上演示

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
result = list(map(lambda k: k > 25, List)).index(True)
print("Index is: ",(result))

執行上述程式碼將得到以下結果

輸出

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

更新於:2019年12月23日

2K+ 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.