Вопрос задан 21.09.2026 в 21:42.
Предмет Информатика.
Спрашивает Бойкова Алина.
Python
В некотором файле содержатся детские имена. Каждое имя указано с новой строки. После имени через пробел записано одно целое число - количество названных этим именем детей. Имена в файле перемешаны в случайном порядке.
Напишите программу, которая считает данные из файла и выведет на экран 5 наиболее популярных имен (каждое в отдельной строке). Имя файла подается на вход и заранее не известно. Если указанного файла не существует, необходимо вывести сообщение "Файл не найден".
Пример:
Если в файле находятся следующие строки:
Аня 5
Саша 10
Кирилл 150
Игорь 1
Юля 999
Миша 2
Вы должны вывести имена Юля, Кирилл, Саша, Аня, Миша (в порядке убывания количества, каждое в отдельной строке)
Ответы на вопрос
Отвечает Богдашин Никита.
Можно прочитать строки файла, отсортировать имена по количеству детей и вывести первые 5.
filename = input()
try:
with open(filename, encoding="utf-8") as f:
names = []
for line in f:
name, count = line.rsplit(maxsplit=1)
names.append((name, int(count)))
names.sort(key=lambda x: x[1], reverse=True)
for name, count in names[:5]:
print(name)
except FileNotFoundError:
print("Файл не найден")
Здесь rsplit(maxsplit=1) отделяет последнее число от имени, затем список сортируется по количеству в порядке убывания.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

