Вывод элемента с наибольшим значением из вложенного списка

#python #printing #calculator #nested-lists #python-3.9

#python #печать #калькулятор #вложенные списки #python-3.9

Вопрос:

Код должен распечатать породу собаки, которая принесла магазину больше всего денег. Я знаю, что мне нужно умножить количество (пункт [2]) и деньги (пункт [3]), чтобы узнать, сколько денег каждая собака заработала в магазине первой, но я не знаю, как заставить систему распечатать самую продаваемую собаку. Это должно быть решено с помощью функции def, кто-нибудь знает, что я мог бы сделать, чтобы решить эту проблему, спасибо!

 # List of transactions [[breed, Dogname, quantity bought, price, age of dog]]
lst_dogs = [
    ["Pitbull", "Rover", 2, 90, 5],
    ["Greyhound", "Jess", 1, 100, 6],
    ["Lab", "Rose", 1,85, 3],
    ["Pitbull", "Daisy", 1, 90, 3],
]

def best_dog():
    sum = 0

    for i in range(len(lst_dogs)):

        item = lst_dogs[i]

        for item in lst_dogs:
            amount = item[2]
            price = item[3]
            total = amount * price
            sum  = total

print("The dog which has earned the most money for the shop is", item[0])

 

Желаемый результат: собака, которая заработала больше всего денег для магазина: Питбуль

Фактический результат: процесс завершен с кодом выхода 0

Ответ №1:

Используйте max функцию с ключом:

 lst_dogs = [
    ["Pitbull", "Rover", 2, 90, 5],
    ["Greyhound", "Jess", 1, 100, 6],
    ["Lab", "Rose", 1,85, 3],
    ["Pitbull", "Daisy", 1, 90, 3],
]

best_dog = max(lst_dogs, key=lambda item: item[2] * item[3])

print("The dog which has earned the most money for the shop is", best_dog[0])
 

Ответ №2:

Возьмите это @cgl345

 def givebest(lst_dogs):
    best_dog = max(lst_dogs, key=lambda item: item[2] * item[3])
    print(f'Best dog is {best_dog[0]}')
 

Комментарии:

1. определение givebest(lst_dogs): best_dog = max(lst_dogs, ключ = лямбда-элемент: элемент [2] * элемент [3]) print(лучшая собака — {best_dog[0]}’)

2. определение givebest(lst_dogs): best_dog = max(lst_dogs, ключ = лямбда-элемент: элемент [2] * элемент [3]); print(лучшая собака — {best_dog[0]}’)