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
Liens | Site |
---|---|
Python List min() Method | tutorialspoint.com |
How to find all occurrences of an element in a list? | stackoverflow |
Find the smallest number in a python list and print the position | stackoverflow |
Python List index() Method | tutorialspoint |
Finding the index of an item given a list containing it in Python | stackoverflow |
Getting the index of the returned max or min item using max()/min() on a list | stackoverflow |
Python: finding lowest integer | stackoverflow |
Find the minimum value in a python list | stackoverflow |
How to return all the minimum indices in numpy | stackoverflow |
numpy.argmin | scipy doc |