Python - 获取大于 K 的第一个元素的索引
pythonserver side programmingprogramming
Python 列表中项目的值不一定按任何排序顺序排列。此外,可能还存在我们只对大于特定值的某些值感兴趣的情况。在本文中,我们将了解如何获取
使用枚举
使用枚举,我们可以获取列表中元素的索引和值。然后我们应用大于条件来仅获取满足条件的第一个元素。下一个函数逐一遍历每个列表元素。
示例
List = [21,10,24,40.5,11] print("给定列表: " + str(List)) #使用 next() + enumerate() result = next(k for k, value in enumerate(List) if value > 25)print("Index is: ",result)
运行上述代码得到以下结果
输出
给定列表: [21, 10, 24, 40.5, 11] Index is: 3
使用 Filter 和 Lambda 函数
在下一个示例中,我们使用 lambda 函数将给定值与在每个索引处取值,然后筛选出满足所需条件的索引。从满足所需条件的元素列表中,我们选择索引 0 处的第一个元素作为答案。
示例
List = [21,10,24,40.5,11] print("给定列表: " + str(List)) #使用 filter() + lambda result = list(filter(lambda k: k > 25, List))[0] print("Index is: ",List.index(result))
运行上述代码得到以下结果
输出
给定列表: [21, 10, 24, 40.5, 11] Index is: 3
使用 map 和 lambda
在下一个例如,我们采用类似的方法,但使用 map 而不是 filter。map 函数用于循环遍历每个元素。只要条件变为真,就会捕获索引。
示例
List = [21,10,24,40.5,11] print("给定列表: " + str(List)) result = list(map(lambda k: k > 25, List)).index(True) print("Index is: ",(result))
运行上述代码得到以下结果
输出
给定列表: [21, 10, 24, 40.5, 11] Index is: 3