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
广告