Самый дорогой товар

Рейтинг: -3Ответов: 1Опубликовано: 25.03.2023

Имеется список словарей, требуется вывести название самого дорогого товара.

Формат входных данных

Первая строка – натуральное число – количество данных. Следующие строки: Натуральное число – количество пар ключ-значение. Указанное количество пар ключ-значение, записанные на отдельных строках.

Формат выходных данных

Название самого дорогого товара.

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

10
4
Название Шахматы
Цвет Чёрно-белый
Запах Старинный
Стоимость 4987
4
Название Один_кроссовок
Цвет Металлический
Запах Свежий
Стоимость 578
4
Название Плюшевый_Дино
Цвет Розовый
Запах Исторический
Стоимость 720
4
Название Питательная_смесь
Цвет Голубой
Запах Питательный
Стоимость 1736
4
Название Шахматы
Цвет Чёрно-белый
Запах Старинный
Стоимость 1514
4
Название Питательная_смесь
Цвет Голубой
Запах Питательный
Стоимость 4046
4
Название Спиннер
Цвет Разноцветный
Запах Молодость
Стоимость 980
4
Название Спиннер
Цвет Разноцветный
Запах Молодость
Стоимость 640
4
Название Бумажный_пакет
Цвет Белый
Запах Бумажный
Стоимость 1897
4
Название Тестовое_название
Цвет Розовый
Запах Весеннее_утро
Стоимость 2918

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

Шахматы

Мой код:

n=int(input())
s=[]
maxi=' '
m=' '
for x in range(n):
    d={}
    
    f=int(input())
    for y in range(f):
        k,v=input().split()
        d[k]=v
    s.append(d)
for i in range(n):
    d=s[i]
    for v in d:
        if v=='Стоимость':
            if d[v]>maxi:
                maxi=d[v]
                m=d['Название']
print(m) 

Выводит:

Спиннер

Подскажите пожалуйста, что не так.

Ответы

▲ 0Принят

Не знаю поможет ли ват этот ответ, но я бы сделал так:

n=int(input())
s=[]
maxi=' '
m=' '
for x in range(n):
    d={}
    
    f=int(input())
    for y in range(f):
        k,v=input().split()
        d[k]=v
    s.append(d)
for i in range(n):
    d=s[i]
    allCosts = {}
    for v in d:
        if v=='Стоимость':
            allCosts[d['Название']] = d[v]
# После этой процедуры allCosts = {"Шахматы": 4987, "Один_кроссовок": 578, "Плюшевый_Дино": 720, "Питательная_смесь":4046, "Спиннер": 640, "Бумажный_пакет": 1897, "Тестовое_название": 2918}

m = max(allCosts, key=allCosts.get) # Выдаёт ключ с наибольшим значением

print(m)