Si je veux la valeur maximale d'une liste, je peux simplement écrire max(List)
mais que faire si j'ai également besoin de l'indice de la valeur maximale ?
Je peux écrire quelque chose comme ça :
maximum=0
for i,value in enumerate(List):
if value>maximum:
maximum=value
index=i
Mais ça me semble fastidieux.
Et si j'écris :
List.index(max(List))
Ensuite, la liste sera itérée deux fois.
Y a-t-il un meilleur moyen ?
0 votes
Que voulez-vous dire par "il passera la liste deux fois" ? List.index(max(List)) fonctionne pour moi.
14 votes
@mwc : Il va itérer la liste une fois pour déterminer la valeur maximale, puis l'itérer une seconde fois pour trouver l'indice de cette valeur.
10 votes
Est-ce que list.index() ne serait pas problématique s'il y a des valeurs max dupliquées ?
0 votes
@LoganYang oui, il peut y avoir deux éléments avec la même valeur.
0 votes
Si l'ordre n'est pas important, vous pourriez faire quelque chose comme List.sort()[-1]