Вновь поможем сотруднику из отдела кадров выяснить, сколько мужчин-однофамильцев работает в организации, но уже немного с иными условиями.
Формат ввода
В первой строке указывается количество мужчин — сотрудников организации (N).
Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.
Формат вывода:
Список однофамильцев в организации с указанием их количества в алфавитном порядке.
Если таковых нет — вывести «Однофамильцев нет».
Пример
Ввод
6
Иванов
Петров
Сидоров
Петров
Иванов
Петров
Вывод
Иванов - 2
Петров - 3
Ввод
3
Иванов
Петров
Сидоров
Вывод
Однофамильцев нет
Решение
Как и в прошлой задаче, накапливаем фамилии в частотный словарь, сортируем, затем ищем количество элементов, значение которых больше единицы и выводим в качестве ответа. Если вывели хоть одну фамилию, устанавливаем признак наличия вывода. Если по окончании поиска признак оказался не установлен – выводим сообщение о том, что однофамильцев нет.
Посмотреть код
Решение
namesakes = dict()
for _ in range(int(input())):
name = input()
namesakes[name] = namesakes.get(name, 0) + 1
namesakes = dict(sorted(namesakes.items()))
printed = False
for name in namesakes:
if namesakes[name] > 1:
print(name, '-', namesakes[name])
printed = True
if not printed:
print('Однофамильцев нет')
Сам не додумался в чём ошибка, на 6-ой проверке ошибка, посмотреть что не так и какие вводные использует яндекс тоже никак
n = int(input())
dct = {}
flag = True
for i in range(n):
name = input()
dct[name] = dct.get(name, 0) + 1
for key, value in dct.items():
if value > 1:
flag = False
print(f‘{key} – {value}’)
if flag:
print(‘Однофамильцев нет’)
Cписок однофамильцев в организации с указанием их количества в алфавитном порядке.