Распаковка значений объекта
На каждой итерации приходит список из 2-х переменных, требуется сразу распаковывать в 2 переменные: for product, cost in shop. Как это сделать?
shop = [['каретка', 1200], ['шатун', 1000], ['седло', 300],
['педаль', 100], ['седло', 1500], ['рама', 12000],
['обод', 2000], ['шатун', 200], ['седло', 2700]]
det_count = 0
det_cost = 0
detail = input('Название детали: ')
for i in range(len(shop)):
if shop[i][0] == detail.lower():
det_count += 1
det_cost += shop[i][1]
print()
if det_count > 0:
print('Кол-во деталей -', det_count)
print('Общая стоимость -', det_cost)
else:
print('Товар не найден.')
Ответы (2 шт):
Автор решения: Павел
→ Ссылка
Переделайте объект shop в словарь вида
shop = {'каретка' : 1200, ...}, после чего для распаковки элементов словаря можно использовать следующую конструкцию:
for product, cost in shop.items()
Но конкретно для вашей задачи для того, чтобы получить стоимость детали по названию достаточно будет сделать следующее:
detail = input().lower()
if detail in shop:
cost += shop[detail]
Если вы не знакомы с такой структурой данных как словарь, то советую почитать официальную документацию
Автор решения: CrazyElf
→ Ссылка
требуется сразу распаковывать в 2 переменные:
for product, cost in shop
Ну, именно так и напишите, только двоеточие нужно добавить в конце:
for product, cost in shop:
if product == detail.lower():
det_count += 1
det_cost += cost