获取满足条件的第一个值的列表索引

时间:2013-01-29 11:42:49

标签: python

我有一个清单

a = [1.0, 1.2, 1.1, 1.4, 0.1]

从该列表中我想得到满足某些标准的第一个值的索引,比如x > 1.1

在python中执行此操作的好方法是什么?

3 个答案:

答案 0 :(得分:5)

您可以合并nextenumerate

>>> next(i for i,x in enumerate(a) if x > 1.1)
1
>>> next(i for i,x in enumerate(a) if x > 1.3)
3

>>> next((i,x) for i,x in enumerate(a) if x > 1.3)
(3, 1.4)

如果你想要两者。

答案 1 :(得分:0)

你可以这样做:

def analyze(l, criteria):
    for idx in range(len(l)):
        if criteria(l[idx]):
            return idx

然后像这样使用它:

a = [1.0, 1.2, 1.1, 1.4, 0.1]
analyze(a, lambda x: x > 1.1)

我不认为它过于pythonic。可能有更多的pythonic方式。

答案 2 :(得分:0)

我认为这可能比其他一些答案更像是更多的pythonic - 如果这就是你所追求的。

a = [1.0, 1.2, 1.1, 1.4, 0.1]

def crit(x):
    return x > 1.3

index = None
for i,v in enumerate(a):
    if crit(v):
        index = i
        break

print index