2

私はリストを持っています

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

そのリストから、いくつかの基準を満たす最初の値のインデックスを取得したいと思います。x > 1.1

Pythonでこれを行う良い方法は何でしょうか?

4

3 に答える 3

5

nextとを組み合わせることができますenumerate:

>>> 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)

両方したい場合。

于 2013-01-29T11:46:16.467 に答える
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な方法があります。

于 2013-01-29T11:45:09.093 に答える
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
于 2013-01-29T11:53:58.803 に答える