#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]}’)