我有两个字典,A和B。A有700000个键值对,B有560000个键值对。来自B的所有键值对都存在于A中,但是A中的一些键是具有不同值的重复键,一些键具有重复值但具有唯一键。我想从A中减去B,这样就可以得到剩下的140000个键值对。当我基于键标识减去键值对时,我删除了let,比如说150000个键值对,因为这些键是重复的。我想根据每个键值对的键和值的标识减去键值对,所以我得到140000。欢迎提出任何建议。
这是一个例子:
A = {'10':1, '11':1, '12':1, '10':2, '11':2, '11':3}
B = {'11':1, '11':2}
我想得到: A-B={'10':1,'12':1,'10':2,'11':3}
我不想得到:
a)当基于键时:
{'10':1, '12':1, '10':2}
或者
b)当基于值时:
{'11':3}
在Python中不能有重复的键。如果运行上面的命令,它将减少为:
但要回答你的问题,做A-B(基于dict键):
要获取A中不在B中的项,仅基于键:
要在A中获取不在B中的项,请基于键和值:
要更新就地(如
A -= B
)请执行以下操作:(与对
A.pop
使用map()不同,如果a中不存在来自B的键,则使用无默认值调用A.pop
不会中断。此外,与使用all
不同,此迭代器使用者将遍历所有值,而不管弹出值的真实性如何。)一个简单直观的方法是
相关问题 更多 >
编程相关推荐