Отсортировать слова в строке по возрастанию их длины (язык программирования Python)

Тема: 
Строки

Вводится строка, состоящая из слов, разделенных пробелами. Требуется отсортировать слова в строке так, чтобы наиболее короткие из них были вначале строки, а наиболее длинные в конце.

Алгоритм решения задачи:

  1. Преобразуем строку в список слов. Для этого следует воспользоваться методом split().
  2. Измерим длину получившегося списка. Это значение показывает количество элементов списка, т.е. количество слов.
  3. Используя метод пузырька, отсортируем элементы списка по их длине. Во внутреннем цикле сортировки должны сравниваться не значения элементов, а их длина.
  4. Создадим пустую строку. В цикле по элементам списка будем добавлять каждое слово в конец этой новой строки, а также добавлять пробел после каждого слова.

s = input()
l = s.split()
ln = len(l)
for i in range(ln-1):
    for j in range(ln-1-i):
        if len(l[j]) > len(l[j+1]):
            l[j],l[j+1] = l[j+1],l[j]
 
s = ''
for i in range(ln):
    s += l[i] + ' '
print(s)

Пример работы программы:

ab aaab ba baaaaa a aba
a ab ba aba aaab baaaaa

и без lambda

def lensort(a):
    return len(a)
 
s = 'abra aabra aaabrraaa braaa aa a'
l = s.split()
for i in sorted(l,key=lensort):
    print i

sorted и lambda

#s = input()
s = 'abra aabra aaabrraaa braaa aa a'
l = s.split()
for i in sorted(l,key=lambda a: len(a)):
    print i