Trouver le nombre le plus grand dans une liste de nombres et son indice sous python

Published: 12 mai 2017

DMCA.com Protection Status

Pour trouver la plus grande valeur d'une liste on peut utiliser max():

>>> l = [4,7,9,4,1,6,9]
>>> max(l)
9

qui donne ici 9. Si on veut connaitre la position dans la liste de la plus grande valeur on peut utiliser index()

>>> l.index(max(l))
2

cependant la méthode index ne donne la position que de la première valeur maximum trouvée. Si comme dans notre exemple il existe plusieurs indices avec une valeur maximum on peut alors utiliser les lists comprehensions:

>>> indices = [i for i, x in enumerate(l) if x == max(l)]
>>> indices
[2, 6]

Pour déterminer si il existe plusieurs fois dans la liste le nombre le plus grand, on peut utiliser la fonction python count(), exemple:

>>> l = [4,7,9,4,1,6,9]
>>> max_value = max(l)
>>> max_value 
9
>>> l.count(max_value)
2

on peut alors écrire une simple fonction qui donne le ou les indices du plus grand nombre dans la liste:

>>> def get_indexes_max_value(l):
...     max_value = max(l)
...     if l.count(max_value) > 1:
...             return [i for i, x in enumerate(l) if x == max(l)]
...     else:
...             return l.index(max(l))
... 
>>> get_indexes_max_value(l)
[2, 6]

Références