Python如何实现两个字典对应值相乘计算总库存价值
问题根因
原代码存在三个核心问题:
Stock和Price字典内的库存、价格均为字符串类型,未做类型转换直接做数值运算会触发逻辑错误- 两段遍历字典值的循环相互独立,循环结束后
x、y仅保留最后一次遍历的结果(卡布奇诺的库存与价格),没有实现同商品数据的一一匹配 - 未设置总价值累加变量,最终仅计算了最后一个商品的单次乘积,无法得到所有商品的累计总价值
可直接运行的正确代码
# 商品菜单列表 Menu = ["Coffee", "Latte", "Tea", "Capuccino"] # 各商品库存 Stock = { "Coffee": "50", "Latte": "150", "Tea": "100", "Capuccino": "200" } # 各商品单价 Price = { "Coffee": "22", "Latte": "27", "Tea": "17", "Capuccino": "32" } total_value = 0 # 遍历商品名,精准匹配同商品的库存和价格 for item in Menu: # 字符串转整数后计算单类商品库存价值 item_total = int(Stock[item]) * int(Price[item]) total_value += item_total print(f"商品总库存价值为:{total_value}")
上述代码运行后输出结果为13250,和手动核算结果一致。
逻辑说明
- 初始化
total_value为0作为总价值累加容器 - 以商品名为遍历维度,通过字典键索引取值,从根源上避免不同商品的库存、价格错位匹配
- 计算前将字符串格式的数值转为整数,规避类型导致的运算错误
- 每算出一类商品的库存价值就累加到总价值变量中,遍历完成后即可得到正确的总库存价值
内容的提问来源于stack exchange,提问作者Ophethile
相关产品推荐
相关产品推荐

