如何查看dict1
中dict2
个dict1
中密钥的次数。如果dict2
中的val
密钥存在于变量4
中,则应根据找到密钥的次数减去初始值dict1
。
例如print dict1
{(2, 0): 3, (3, 1): 0, (1, 1): 2, (2, 2): 1}
看起来像这样
dict2
和print `dict2`
{(2, 0): 323, (3, 1): 32, (10, 10): 21, (20, 2): 100}
看起来像这样
val
由于dicts之间有两个重复键,2
应该等于dict2
。
如果dict1
看起来与val
相同,则0
应为dict1
。
此外,dict2
的大小始终相同,但inject
可能会变得非常大,因此快速查找方法非常理想。最后,这里的词汇值并不是真的意味着什么。
答案 0 :(得分:4)
使用set intersection:
d1 = {(2, 0): 3, (3, 1): 0, (1, 1): 2, (2, 2): 1}
d2 = {(2, 0): 323, (3, 1): 32, (10, 10): 21, (20, 2): 100}
sd1 = set(d1.keys())
sd2 = set(d2.keys())
len(sd1.intersection(sd2))
编辑:
由于关键视图已设置为类似,因此您可以直接执行d1.keys() & d2.keys()
。请注意.keys()
是一个非常便宜的调用,因为它只是为现有的dict结构提供了一个替代接口(注释中的@ PM2RING的Credits)。
答案 1 :(得分:4)
由于dict_keys为already set-like,因此您只需使用
即可len(dict1.keys() & dict2.keys())
适用于Python 3.在Python 2中,等效视图对象是dict.viewkeys()
,您可以使用它来进行类似操作。
len(dict1.viewkeys() & dict2.viewkeys())
答案 2 :(得分:0)
从每个字典中的键列表中设置。
找到这些集合的交集和并集。
union - intersection
为您提供了一系列差异。
如果那是0,那么你返回0;
否则,返回交叉点的大小。
答案 3 :(得分:0)
这适用于Python 2和3:len(set(dict1).intersection(dict2))
In [1]: dict1 = {(2, 0): 3, (3, 1): 0, (1, 1): 2, (2, 2): 1}
In [2]: dict2 = {(2, 0): 323, (3, 1): 32, (10, 10): 21, (20, 2): 100}
In [3]: len(set(dict1).intersection(dict2))
Out[3]: 2