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.