Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите с кодом пж

В одном книжном магазине решили выяснить, какую книгу чаще всего покупали мужчины за год. У магазина имеются данные с названиями купленных книг и полом человека, который купил какую-либо книгу. Напишите программу, которая определит самую популярную книгу среди мужчин за год.



Входные данные:

Вводится натуральное число n – количество строк с данными. Далее вводятся n строк с названием книги и полом человека, купившего книгу. В каждой из таких строк идет сначала название (строка из латинских букв), потом слэш, потом пол человека («m» – мужчина, «w» – женщина).



Выходные данные:

Вывести одну строку – название книги, которую чаще всего покупали мужчины.



Так, например, если программе на вход будут поданы следующие данные:

5

To Kill a Mockingbird/m

1984/w

The Great Gatsby/m

The Lord of the Rings/w

The Great Gatsby/m,

то она должна вывести строку «The Great Gatsby».



В поле краткого ответа введите число, которое получается в результате работы программы на входных данных из файла «6.5.txt»

По дате
По рейтингу
Аватар пользователя
Ученик
1234567891011121314151617181920212223
 count = int(input("Введите количество строк с данными:")) 
 
books = [] 
 
for _ in range(count): 
    book = input("Введите название книги и пол в формате название_книги/пол_человека: ") 
    books.append(book) 
 
# Ищем книги, которые брали мужчины 
man_books = [n for n in books if n[-1] == "m"] 
 
# Ищем самую популярную книгу у мужчин 
count = 0 
for book in man_books: 
    if man_books.count(book) > count: 
        popular_man_book = book 
        count = man_books.count(book) 
 
# Форматируем, что бы выглядело красиво 
popular_man_book = popular_man_book.removesuffix("/m") 
 
print("Самая популярная книга у мужчин:", popular_man_book) 
 
Аватар пользователя
Знаток

Ответ от gpt мб поможет

Вот решение на Python:

from collections import defaultdict

n = int(input())

books = defaultdict(lambda: {"m": 0, "w": 0})

for _ in range(n):
book, gender = input().split("/")
books[book][gender] += 1

most_popular_book = max(books, key=lambda x: books[x]["m"])
print(most_popular_book)

Объяснение:

1. Импортируется класс defaultdict из модуля collections. Это словарь, который при обращении к несуществующему ключу будет создавать новый элемент с заданным значением по умолчанию.
2. Считывается количество строк n.
3. Создается словарь books, где ключом является название книги, а значением - другой словарь, где хранится количество покупок мужчинами и женщинами.
4. В цикле по n строкам считываются название книги и пол покупателя, и соответствующие счетчики в словаре books увеличиваются на 1.
5. Находится ключ (название книги) с максимальным значением счетчика мужчин, и этот ключ выводится как ответ.

Программа работает с входными данными из файла 6.5.txt и выводит ответ в виде числа.