Необходимо отсортировать список партий по количеству голосов, выводя список всех партий, участвовавших в выборах

  • 46
Необходимо отсортировать список партий по количеству голосов, выводя список всех партий, участвовавших в выборах, сначала по убыванию количества голосов избирателей, а затем в лексикографическом порядке, если количество голосов одинаково. Пример: входные данные: партии: партия одна партия две партия три голоса: партия одна партия две партия три партия две партия три вывод программы: партия три партия две
Pechenka_7484
28
Решение этой задачи можно осуществить с помощью следующего алгоритма:

1. Создать словарь, где ключами будут названия партий, а значениями - количество голосов каждой партии.
2. Посчитать количество голосов для каждой партии, обновляя соответствующее значение в словаре.
3. Отсортировать словарь по количеству голосов в убывающем порядке и затем по алфавиту.
4. Вывести на экран отсортированный список партий.

Приведенный ниже код реализует описанный алгоритм:

python
parтии = ["партия одна", "партия две", "партия три"]
голоса = [1, 2, 3, 2, 3]

словарь_голосов = {}
for партия, голос in zip(партии, голоса):
if партия in словарь_голосов:
словарь_голосов[партия] += голос
else:
словарь_голосов[партия] = голос

отсортированный_список = sorted(словарь_голосов.items(), key=lambda x: (-x[1], x[0]))

for партия, _ in отсортированный_список:
print(партия)


В результате выполнения кода, мы получим следующий вывод:


партия три
партия две
партия одна


Таким образом, список партий отсортирован в порядке убывания количества голосов, а при одинаковом количестве голосов - в лексикографическом порядке.