0

Проблема в Python с задачей

Нужно чтобы пользователь вводил текст, а код вывел самое большое слово в этом тексте text = input() l = text.split() text1 = ' '.join(l) text2 = text1.split() cont = [] for i in text2: cont.append((len(i))) if max(cont) == len(i): print(i) Мой код Но он что-то не работает, показывает самое большое слово только тогда, когда их 3

16th Jan 2022, 10:10 AM
Andrey Chiruk
Andrey Chiruk - avatar
6 ответов
+ 1
Всё делается в одну строчку: max(text.split(), key=len)
16th Jan 2022, 10:37 AM
Alexey Kopyshev
Alexey Kopyshev - avatar
0
Не совсем понимаю первые 4 строчки кода, ибо они цикличны, но можешь попробовать использовать функцию max и её аргумент key для решения это задачи
16th Jan 2022, 10:24 AM
Timur Askarov
Timur Askarov - avatar
0
Timur и Alexey, спасибо за помощь. Можете пожалуйста расшифровать max(text.split(), key=len) что тут за что отвечает, чтобы мне больше разобраться в этом
16th Jan 2022, 10:52 AM
Andrey Chiruk
Andrey Chiruk - avatar
0
Text.split() разобьёт предложение по слову в лист, а max вернет наибольшее значение по длине из листа
16th Jan 2022, 10:54 AM
Timur Askarov
Timur Askarov - avatar
0
всё понял, спасибо за ответ
16th Jan 2022, 11:23 AM
Andrey Chiruk
Andrey Chiruk - avatar
0
Andrey Chiruk len это сокращённая запись для стандартного метода len(). Если бы это была твоя собственная функция, то нужно было бы писать: key = lambda x: len(x) Т.е. максимум из результатов функции len().
16th Jan 2022, 3:07 PM
Alexey Kopyshev
Alexey Kopyshev - avatar