python: 如何使用字典和 for 循环计算(项目,数量)元组列表的总成本?
python: how to use dictionary and for loop to work out total cost for a list of (item, quantity) tuples?
这是我第一次使用堆栈溢出,因为我刚刚开始学习 python 如果我没有尽可能清楚地表达事情,请见谅!
我正在解决一个问题,要求我开一家文具店。有一个包含价格的字典:
stationery_prices = {
'pen': 0.55,
'pencil': 1.55,
'rubber': 2.55,
'ruler': 3.55
}
我必须要求用户输入他们想要的商品和数量,然后将其排列在元组列表中。
所以现在我有一个如下所示的列表:
[('pen', 1), ('pencil', 2)]
如何使用 for 循环返回原始价格字典并为用户计算总费用?
非常感谢
遍历每个元素,解包元组:
total = 0
for bought_item in bought_items:
item_name = bought_item[0]
quantity = bought_item[1]
total += stationery_prices[item_name] * quantity
print(total)
请注意,这比必要的更冗长(例如,for
循环中没有元组解包)。我选择这样做是为了减少与不熟悉的语法可能造成的混淆。如果你想在一行中完成,你可以这样做:
total = sum(stationery_prices[item_name] * quantity
for item_name, quantity in bought_items)
这是我第一次使用堆栈溢出,因为我刚刚开始学习 python 如果我没有尽可能清楚地表达事情,请见谅!
我正在解决一个问题,要求我开一家文具店。有一个包含价格的字典:
stationery_prices = {
'pen': 0.55,
'pencil': 1.55,
'rubber': 2.55,
'ruler': 3.55
}
我必须要求用户输入他们想要的商品和数量,然后将其排列在元组列表中。
所以现在我有一个如下所示的列表:
[('pen', 1), ('pencil', 2)]
如何使用 for 循环返回原始价格字典并为用户计算总费用?
非常感谢
遍历每个元素,解包元组:
total = 0
for bought_item in bought_items:
item_name = bought_item[0]
quantity = bought_item[1]
total += stationery_prices[item_name] * quantity
print(total)
请注意,这比必要的更冗长(例如,for
循环中没有元组解包)。我选择这样做是为了减少与不熟悉的语法可能造成的混淆。如果你想在一行中完成,你可以这样做:
total = sum(stationery_prices[item_name] * quantity
for item_name, quantity in bought_items)