108 votes

Premier indice de la liste Python supérieur à x ?

Quelle serait la méthode la plus pythique pour trouver le premier indice d'une liste qui est supérieur à x ?

Par exemple, avec

list = [0.5, 0.3, 0.9, 0.8]

La fonction

f(list, 0.7)

rendrait

2.

148voto

Ignacio Vazquez-Abrams Points 312628
next(x[0] for x in enumerate(L) if x[1] > 0.7)

52voto

J.F. Sebastian Points 102961

Si la liste est triée, alors bisect.bisect_left(alist, value) est plus rapide pour une grande liste que next(i for i, x in enumerate(alist) if x >= value) .

21voto

ghostdog74 Points 86060
>>> alist= [0.5, 0.3, 0.9, 0.8]
>>> [ n for n,i in enumerate(alist) if i>0.7 ][0]
2

17voto

flybywire Points 36050
filter(lambda x: x>.7, seq)[0]

11voto

Virgil Dupras Points 1603
for index, elem in enumerate(elements):
    if elem > reference:
        return index
raise ValueError("Nothing Found")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X