Задача

4 /9


Сортируем словарь

Теория Нажмите, чтобы прочитать/скрыть


Сортировка словаря

В Python словари (начиная с версии 3.7) сохраняют порядок добавления элементов, но для сортировки словарей по ключам или значениям можно использовать несколько подходов.
 

1. Сортировка по ключам

Использование функции sorted()

Вы можете использовать функцию sorted() для получения отсортированного списка ключей, а затем создать новый словарь:
my_dict = {'b': 2, 'a': 1, 'c': 3}

# Сортировка по ключам
sorted_dict_by_keys = {key: my_dict[key] for key in sorted(my_dict)}
print(sorted_dict_by_keys)  # Вывод: {'a': 1, 'b': 2, 'c': 3}



2. Сортировка по значениям

Использование функции sorted()

Для сортировки по значениям
my_dict = {'b': 2, 'a': 1, 'c': 3}

# Сортировка по значениям
sorted_dict_by_values = {key: value for key, value in sorted(my_dict.items(), key=lambda item: item[1])}
print(sorted_dict_by_values)  # Вывод: {'a': 1, 'b': 2, 'c': 3}



3. Сортировка с использованием lambda и key

Вы можете использовать  lambda для более сложных критериев сортировки:
 
my_dict = {'b': 2, 'a': 1, 'c': 3, 'd': 2}

# Сортировка по значениям, а затем по ключам
sorted_dict = {key: value for key, value in sorted(my_dict.items(), key=lambda item: (item[1], item[0]))}
print(sorted_dict)  # Вывод: {'a': 1, 'b': 2, 'd': 2, 'c': 3}

Задача

Алфавитно-частотный словарь - это частотный словарь, в котором слова с указанием их частоты (встречаемости) расположены по алфавиту.
Постройте словарь, отсортированный по частоте слов, в котором слова расположены порядке уменьшения их частоты встречаемости, справа от каждого слова должно быть указано сколько раз оно встречается в тексте. Если количество слов одинаково, сортировка идет по словам в лексикографическом порядке.  Признаком окончания текста является "END!". 

Входные данные
На вход подаются строки текста. Последняя строка содержит одно единственное слово "END!" и является признаком окончания текста.

Выходные данные
Выведите на экран все слова, с указанием через пробел того, сколько раз это слово встречается в тексте. Каждое слово в отдельной строке. Слова должны быть расположены в порядке уменьшения частоты встречаемости.

 
Примеры
Входные данные Выходные данные
1 один два
три один
два
END!
два 2
один 2
три 1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w6495
Python574
Комментарий учителя