Warum druckt max () die falsche Menge? [Duplikat]
Dec 23 2020
list = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
print(len(max(list[0])))
Ausgabe: 7
Warum ist der Ausgang 7 und nicht 8?
wenn ich die print-Anweisung ändere zu:
print(len(max(list[0], key = len)))
Es klappt. Ich verstehe nicht warum. Ich hoffe jemand kann mir helfen.
Vielen Dank
Antworten
1 SneakyTurtle Dec 23 2020 at 00:44
Standardmäßig gibt die Funktion max die Zeichenfolge mit dem höchsten Wert in alphabetischer Reihenfolge zurück. Welches ist "Orangen", deren Länge 8 ist.
Wenn Sie den Schlüssel als zweiten Parameter angeben, werden Zeichenfolgen nach ihrer Länge und nicht alphabetisch verglichen.
FrankBlack78 Dec 23 2020 at 00:40
Weil max (Liste [0]) gleich 'Orangen' und len ('Orangen') gleich 7 ist.