Вопрос задан 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) отделяет последнее число от имени, затем список сортируется по количеству в порядке убывания.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос