首页 > 解决方案 > 如何将多个转换应用于 Python 字典中的同一个键

问题描述

我是一名库存经理,我的库存如下

oldstock = {"A":100,"B":120,"C":150,"D":100,"E":230,"F":200,"G":180,"H":140,"I":90,"J":50}

但是,我从每个垃圾箱中出售了一些物品,如下所示(似乎字典列表是表示它的最佳方式)

sale = [{"A":20},{"C":25},{"E":15},{"F":18},{"H":20},{"C":35},{"A":40},{"A":5},{"E":40},{"H":20}]

在每箱进行这些销售后,我如何计算我的新库存?

标签: pythonlistdictionary

解决方案


一个更干净、易于理解的方法是这样的:

for item in sale:
    for k, v in item.items():
        # an extra check, you can remove this if you know for sure that sale will never have any key which is not in oldstock
        if k in oldstock:
            oldstock[k] = oldstock[k] - v

print(oldstock)
# {'A': 35, 'B': 120, 'C': 90, 'D': 100, 'E': 175, 'F': 182, 'G': 180, 'H': 100, 'I': 90, 'J': 50}

希望这可以帮助。祝你好运。


推荐阅读