mengapa max () mencetak jumlah yang salah? [duplikat]

Dec 23 2020
list = [['apples', 'oranges', 'cherries', 'banana'],
        ['Alice', 'Bob', 'Carol', 'David'],
         ['dogs', 'cats', 'moose', 'goose']]

print(len(max(list[0])))

Hasil: 7

mengapa keluaran 7 dan bukan 8?

ketika saya mengubah pernyataan cetak menjadi:

print(len(max(list[0], key = len))) 

berhasil. Saya tidak mengerti kenapa. Saya berharap seseorang dapat membantu saya.

Terima kasih

Jawaban

1 SneakyTurtle Dec 23 2020 at 00:44

Secara default, fungsi max mengembalikan string dengan nilai tertinggi, diurutkan menurut abjad. Yaitu "jeruk", yang panjangnya 8.

Saat Anda memberikan kunci sebagai parameter kedua, ia membandingkan string dengan panjangnya dan bukan menurut abjad.

FrankBlack78 Dec 23 2020 at 00:40

Karena max (list [0]) sama dengan 'jeruk' dan len ('jeruk') sama dengan 7.