max()が間違った量を出力するのはなぜですか?[複製]

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

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

出力:7

なぜ出力は8ではなく7なのですか?

printステートメントを次のように変更すると:

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

できます。理由がわかりません。誰かが私を助けてくれることを願っています。

ありがとう

回答

1 SneakyTurtle Dec 23 2020 at 00:44

デフォルトでは、max関数は、アルファベット順に最も高い値を持つ文字列を返します。これは「オレンジ」で、長さは8です。

キーを2番目のパラメーターとして指定すると、アルファベット順ではなく長さで文字列が比較されます。

FrankBlack78 Dec 23 2020 at 00:40

max(list [0])は 'oranges'に等しく、len( 'oranges')は7に等しいためです。