我有2个字典:
Prelim_firmpan = {'06059C0127J': 'J','06059C0090J': 'J','06059C0288K': 'K',
'06059C0190J': 'J','06059C0436J': 'J','06059C0158J': 'J','06059C0229K': 'K',
'06059C0227K': 'K'}
NFHL_firmpan = {'06059C0127J': 'J','06059C0090J': 'J','06059C0319J': 'J',
'06059C0313J': 'J','06059C0329J': 'J','06059C0258J': 'J','06059C0444J': 'J'}
我想找到这两个词典之间的差异数。我有一种方法来查找相似文件的数量。如您所见,这两个词典之间有2个共享文件。 '06059C0127J': 'J'
和'06059C0090J': 'J'
。以下给出了结果:
shared = {k: Prelim_firmpan[k] for k in Prelim_firmpan if k in NFHL_firmpan and Prelim_firmpan[k] == NFHL_firmpan[k]}
num_shared = len(shared)
print(num)
现在,我想做些类似的事情来从Prelim_firmpan
获取不在 NFHL_firmpan
中的项目数。以下仅返回一个空集。关于这项工作有什么建议吗?
unshared = {k: Prelim_firmpan[k] for k in Prelim_firmpan if k in NFHL_firmpan and Prelim_firmpan[k] != NFHL_firmpan[k]}
num_unshared = len(unshared)
print(unshared)
>>>0
答案 0 :(得分:1)
条件if k in NFHL_firmpan and Prelim_firmpan[k] != NFHL_firmpan[k]
永远不会为True。
为什么不使用if k not in NFHL_firmpan
?
unshared = {k: Prelim_firmpan[k] for k in Prelim_firmpan if k not in NFHL_firmpan}
num_unshared = len(unshared)
print(unshared)
#{'06059C0288K': 'K', '06059C0190J': 'J', '06059C0436J': 'J', '06059C0158J': 'J', '06059C0229K': 'K', '06059C0227K': 'K'}