max()が間違った量を出力するのはなぜですか?[複製]
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
デフォルトでは、max関数は、アルファベット順に最も高い値を持つ文字列を返します。これは「オレンジ」で、長さは8です。
キーを2番目のパラメーターとして指定すると、アルファベット順ではなく長さで文字列が比較されます。
FrankBlack78
max(list [0])は 'oranges'に等しく、len( 'oranges')は7に等しいためです。