Débutant : deux solutions pour un exercice élémentaire
La seconde peut-elle se défendre ?
"Écrivez une fonction en Python qui permette de calculer l’argmax d’une liste, c’est-à-dire l’indice auquel est stockée la
valeur maximale de la liste. Si cette valeur maximale est présente plusieurs fois dans la liste, on retournera l’indice de sa
première occurrence."
1 - Solution du tuto :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
def argmax(liste):
i_max = None
# On initialise elem_max à une valeur
# qui n'est clairement pas le max
if len(liste) > 0:
elem_max = liste[0] - 1
for i, elem in enumerate(liste):
if elem > elem_max:
i_max = i
elem_max = elem
return i_max
print(argmax([45,2,89,14,2,3,7,8,56,89]))
2 |
2 - Autre solution (en prenant des libertés avec l'énoncé, mais qui affiche l'indice et le max.) :
Code:
1 2 3 4
|
liste = [45,2,89,14,2,3,7,8,56,89]
print(liste.index(max(liste)),"-", max(liste))
2 - 89 |