Сортировка слов в алфавитном порядке
Задача: взять строку, разбить её на отдельные слова и вывести их отсортированными по алфавиту (лексикографически).
Что нужно знать
Перед изучением примера полезно понимать:
Python: цикл for — цикл
forPython: строки — строки
Методы строк Python — методы строк
Пример
# Program to sort alphabetically the words form a string provided by the user
my_str = "Hello this Is an Example With cased letters"
# To take input from the user
#my_str = input("Enter a string: ")
# breakdown the string into a list of words
words = [word.lower() for word in my_str.split()]
# sort the list
words.sort()
# display the sorted words
print("The sorted words are:")
for word in words:
print(word)
Вывод
The sorted words are:
an
cased
example
hello
is
letters
this
with
Примечание
Чтобы попробовать программу на другой строке, измените значение переменной my_str.
Как это работает
Исходная строка хранится в my_str. Метод split() разбивает её по пробелам и возвращает список слов. Списковое включение [word.lower() for word in my_str.split()] дополнительно приводит каждое слово к нижнему регистру — это нужно, чтобы сортировка не зависела от регистра букв (иначе все слова с заглавной буквы оказались бы в начале).
Метод sort() сортирует список на месте по алфавиту. Затем цикл for выводит отсортированные слова по одному на строку.