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+ 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告