pourquoi max () imprime-t-il le mauvais montant? [dupliquer]
Dec 23 2020
list = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
print(len(max(list[0])))
Sortie: 7
pourquoi la sortie 7 et non 8?
lorsque je modifie l'instruction d'impression pour:
print(len(max(list[0], key = len)))
Ça marche. Je ne comprends pas pourquoi. J'espère que quelqu'un pourra m'aider.
Merci
Réponses
1 SneakyTurtle Dec 23 2020 at 00:44
Par défaut, la fonction max renvoie la chaîne avec la valeur la plus élevée, classée par ordre alphabétique. Qui est "oranges", dont la longueur est de 8.
Lorsque vous fournissez la clé en tant que deuxième paramètre, il compare les chaînes par leur longueur et non par ordre alphabétique.
FrankBlack78 Dec 23 2020 at 00:40
Parce que max (list [0]) est égal à 'oranges' et len ('oranges') est égal à 7.