汉字在python中是如何比较大小的_如何比较python中的两个字典

这是你的问题的简化版本。您可以将AwardsDict“value”字典按NSN分组,然后进行比较和匹配。在RFQDict = {

'a': {'Add_method': 'D1', 'NSN': '9905'},

'b': {'Add_method': 'D2', 'NSN': '9906'},

'c': {'Add_method': 'D3', 'NSN': '9907'},

'd': {'Add_method': 'D4', 'NSN': '9908'}

}

AwardsDict = {

'W21': {'Awarddate': '08-13-2007', 'Awardid': '1', 'NSN': '9906'},

'W22': {'Awarddate': '08-14-2007', 'Awardid': '2', 'NSN': '9905'},

'W23': {'Awarddate': '08-15-2007', 'Awardid': '3', 'NSN': '9908'},

'W24': {'Awarddate': '08-16-2007', 'Awardid': '4', 'NSN': '9907'},

}

# First create a new dictionary with "NSN" as keys and awards as matches

nsn_awards = {v['NSN']: v for v in AwardsDict.values()}

# go through all values of RFQDict and find a match by

# looking up the its NSN in the nsn_awards_dict

matches = [(rfq, nsn_awards[rfq['NSN']]) for rfq in RFQDict.values()]

print(matches)

印刷品:

^{pr2}$

请注意,这给了我们一个O(n)解决方案,但折衷的是为我们创建的dict留出空间。在

如果有可能您的nsn在AwardsDict中没有匹配,您可以在创建匹配之前执行一个简单的if nsn in nsn_awards检查。为了更好地解释,这里有一个没有列表理解的版本:matches = []

for rfq in RFQDict.values():

if rfq['NSN'] in nsn_awards: # only append if there's a match

nsn = rfq['NSN']

matches.append((rfq, nsn_awards[nsn]))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值