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)
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)
La bonne solution est celle qui met en place une "recherche inversée en boucle de niveau C".
En pseudo-code C :
for (int i = len(list) -1; i >= 0; i--)
if list[i] == value:
return i
raise NotFound
En Python, la bonne solution devrait être :
def rindex(lst, value):
# reversed est un itérateur inversé intégré
# operator.indexOf peut gérer cet itérateur
# si la valeur n'est pas trouvée, cela lève
# une erreur ValueError : sequence.index(x) : x not in sequence
_ = operator.indexOf(reversed(lst), value)
# nous devons corriger l'index inversé
return len(lst) - _ - 1
Mais il serait préférable d'avoir un index inversé intégré.
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.
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/…