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)