neden max () yanlış miktarda yazdırıyor? [çiftleme]

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

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

Çıkış: 7

neden çıktı 8 değil de 7?

print deyimini şu şekilde değiştirdiğimde:

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

işe yarıyor. Neden anlamıyorum Umarım biri bana yardım edebilir.

Teşekkürler

Yanıtlar

1 SneakyTurtle Dec 23 2020 at 00:44

Varsayılan olarak max işlevi, alfabetik olarak sıralanmış en yüksek değere sahip dizeyi döndürür. Hangi uzunluğu 8 olan "portakal" dır.

Anahtarı ikinci bir parametre olarak sağladığınızda, dizeleri alfabetik olarak değil uzunluklarına göre karşılaştırır.

FrankBlack78 Dec 23 2020 at 00:40

Çünkü max (liste [0]) 'portakallara' ve len ('portakallar') 7'ye eşittir.