Сделал 12 задание
This commit is contained in:
parent
2f7056a50f
commit
8c6fad2c00
60
lesson.12.py
Normal file
60
lesson.12.py
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
''' ****** Задание 11 из 20 *********
|
||||||
|
* Напишите программу, которая по списку фамилий сотрудников выводит список всех однофамильцев (тех, чьи фамилии встречаются более одного раза), а также количество их повторений.
|
||||||
|
|
||||||
|
Формат ввода
|
||||||
|
В первой строке указывается количество мужчин — сотрудников организации (
|
||||||
|
N
|
||||||
|
N).
|
||||||
|
Затем идут
|
||||||
|
N
|
||||||
|
N строк с фамилиями этих сотрудников в произвольном порядке.
|
||||||
|
|
||||||
|
Формат вывода
|
||||||
|
Список однофамильцев в организации с указанием их количества в алфавитном порядке.
|
||||||
|
Если таковых нет — вывести «Однофамильцев нет».
|
||||||
|
|
||||||
|
|
||||||
|
Подсказка
|
||||||
|
В отличие от предыдущей задачи, здесь вам требуется сформировать итоговый список фамилий, отсортировать его и только потом уже вывести.
|
||||||
|
|
||||||
|
Пример 1
|
||||||
|
Ввод
|
||||||
|
|
||||||
|
6
|
||||||
|
Иванов
|
||||||
|
Петров
|
||||||
|
Сидоров
|
||||||
|
Петров
|
||||||
|
Иванов
|
||||||
|
Петров
|
||||||
|
Вывод
|
||||||
|
|
||||||
|
Иванов - 2
|
||||||
|
Петров - 3
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
total_entries = int(input())
|
||||||
|
name_list = []
|
||||||
|
|
||||||
|
for _ in range(total_entries):
|
||||||
|
person_name = input()
|
||||||
|
name_list.append(person_name)
|
||||||
|
|
||||||
|
duplicate_records = [
|
||||||
|
f"{name} - {name_list.count(name)}"
|
||||||
|
for name in set(name_list)
|
||||||
|
if name_list.count(name) > 1
|
||||||
|
]
|
||||||
|
|
||||||
|
if duplicate_records:
|
||||||
|
for record in sorted(duplicate_records):
|
||||||
|
print(record)
|
||||||
|
else:
|
||||||
|
print('Однофамильцев нет')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue