list = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
print(len(max(list[0])))
Выход: 7
почему на выходе 7 а не 8?
когда я изменяю оператор печати на:
print(len(max(list[0], key = len)))
оно работает. Я не понимаю, почему. Я надеюсь, что кто-то может мне помочь.
Спасибо
Пожалуйста, повторите по теме и Как спросить из тура. «Научите меня этой базовой языковой функции» не относится к теме переполнения стека. Вы должны сделать честную попытку решения, а затем задать конкретный вопрос о вашей реализации. Stack Overflow не предназначен для замены существующих руководств и документации.
Потому что max(list[0]) равно 'апельсинам', а len('апельсины') равно 7.
По умолчанию функция max возвращает строку с наибольшим значением в алфавитном порядке. Который представляет собой «апельсины», длина которых равна 8.
Когда вы указываете ключ в качестве второго параметра, он сравнивает строки по их длине, а не по алфавиту.
Спасибо! объятия и поцелуи <3
По умолчанию строки сравниваются лексикографически.