109 votes

Trouver le premier et le dernier index d'une valeur dans une liste en Python

Y a-t-il des méthodes intégrées qui font partie des listes qui me donneraient le premier et le dernier indice d'une valeur, comme:

verts.IndexOf(12.345)
verts.LastIndexOf(12.345)

2 votes

Je les lis aussi, mais ne rien savoir du python rend les choses plus difficiles. Je trouve sa syntaxe très cryptique.

0 votes

Si vos listes sont triées, alors vous voudrez peut-être consulter le module bisect <docs.python.org/3/library/bisect.html>.

0 votes

Voir la brillante réponse de Dikei ici en utilisant les fonctions intégrées enumerate et reversed : stackoverflow.com/questions/9836425/…

0voto

Jacob Phillips Points 3074

Comment se fait-il que personne n'ait suggéré d'itérer en sens inverse plutôt que d'inverser le tableau ? C'est toujours O(n) parce que la dernière occurrence pourrait être au début, mais ça doit être plus rapide que d'inverser la liste d'abord, non ?

def rindex(arr, value):
    for i in range(len(arr)-1, -1, -1):
        if arr[i] == value:
            return i
    return -1

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