如何比较两个字典同键值并筛选字典B中更小的对应值
解决方案
只需修改循环内的判断条件,将值相等的判断替换为dictionary2[key] < dictionary1[key],同时保留键存在性检查即可实现需求。
修改后的循环版代码
dictionary1 = {'A':7, 'B':8, 'C':9} dictionary2 = {'A':2, 'B':8, 'C':22} pairs = dict() for key in dictionary1: if key in dictionary2 and dictionary2[key] < dictionary1[key]: pairs[key] = dictionary2[key] print(pairs)
运行结果:
{'A': 2}
更简洁的字典推导式写法
如果偏好更紧凑的Python风格,也可以用字典推导式实现相同逻辑:
dictionary1 = {'A':7, 'B':8, 'C':9} dictionary2 = {'A':2, 'B':8, 'C':22} pairs = { key: dictionary2[key] for key in dictionary1 if key in dictionary2 and dictionary2[key] < dictionary1[key] } print(pairs)
两种写法的效率一致,都能高效处理数千条数据的库存字典——因为字典的键查找是O(1)操作,遍历仅需一次。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

