182 votes

Méthode pythonique pour trouver la valeur maximale et son indice dans une liste ?

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 ?

-1voto

Voici une solution complète à votre question en utilisant les fonctions intégrées de Python :

# Create the List
numbers = input("Enter the elements of the list. Separate each value with a comma. Do not put a comma at the end.\n").split(",") 

# Convert the elements in the list (treated as strings) to integers
numberL = [int(element) for element in numbers] 

# Loop through the list with a for-loop

for elements in numberL:
    maxEle = max(numberL)
    indexMax = numberL.index(maxEle)

print(maxEle)
print(indexMax)

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