Предмет: Информатика, автор: darinabarsukova8

На вход попадается строка, состоящая из двух слов, разделённых пробелами. Необходимо переставить эти слова в порядке убывания их длин
(Если что язык Питон)


serd2011: Язык?

Ответы

Автор ответа: serd2011
1

Python 3.7.2:

string = input()

array = list(filter(None, string.split(' ')))

array.sort(key=len, reverse=True)

print(*array, sep=' ')

Пример работы на скрине

============

Не забывайте нажать "Спасибо", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"

Бодрого настроения и добра!

Успехов в учебе

Приложения:

KnowsUser1: Не могли бы вы объяснить, в чём смысл использования filter с None в качестве параметра функции-фильтра для приведения входной строки к листу отдельных "слов"? То есть, filter(None, Iterable) вернёт изначальную Iterable, без каких либо изменений. Так какой смысл всех этих огородов и змеиной магии, если обычный split() и так сразу вернёт нужный нам лист?
KnowsUser1: Да и задавать функции print() параметр sep в значение одного пустого символа тоже не имеет никакого смысла, ибо по умолчанию sep и так равен одному пробелу
65biso2: По моему вообще достаточно
print(sorted(input().split(),reverse=True, key=len))
65biso2: И конечно тоже бы хотелось узнать сокровенный смысл использования фильтра в принципе в этой задаче.
serd2011: Для удаления пустых элементов
65biso2: Они и не должны возникать. А если делать полную защиту от дурака, то код растет в разы.
Похожие вопросы