Voici le code:Comment fonctionne cette expression max() en Python?
a = [1,2,3,4]
b = {}
b[1] = 10
b[2] = 8
b[3] = 7
b[4] = 5
print max(a,key=lambda w: b[w])
Cette imprime 1
.
Je ne comprends pas comment max(a,key=lambda w: b[w])
est évalué ici cependant; Je suppose que pour chaque valeur de i en a, il trouve le b de valeur correspondante [i] par
- enregistrement de la valeur actuelle de i comme w dans la fonction de lambda
- obtenir la valeur correspondante de b [i ] et le stocker dans la clé.
Mais alors pourquoi est-ce qu'il imprime 1 au lieu de 11? Ou pourquoi ne pas imprimer 10, puisque c'est vraiment le nombre maximum?
presque peur de demander, mais pourquoi avez-vous imaginé qu'il pourrait produire 11? 1 + 10? –
Exactement. Mon erreur. –