Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

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



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

Вводится натуральное число 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»
2 ответа
Сл Гог Ученик (151) 1 неделю назад
Ответ от 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 и выводит ответ в виде числа.
Иван Дыкин Ученик (133) 1 неделю назад
 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)
Похожие вопросы