您的问题不够精确,无法给出一个答案。
1.关键交集
如果您想与ID帖子相交(致谢James),请执行以下操作:
common_ids = p1.keys() & p2.keys()
但是,如果您要遍历文档,则必须考虑哪个帖子具有优先级,我认为是p1。要迭代的文档common_ids,collections.ChainMap将最有用:
from collections import ChainMap
intersection = {id: document
for id, document in ChainMap(p1, p2)
if id in common_ids}
for id, document in intersection:
...
或者,如果您不想创建单独的intersection字典:
from collections import ChainMap
posts = ChainMap(p1, p2)
for id in common_ids:
document = posts[id]
2.项目交集
如果要与两个帖子的项目相交,这意味着要匹配IDs和文档,请使用下面的代码(感谢DCPY)。但是,这仅在您要查找术语重复项时才有用。
duplicates = dict(p1.items() & p2.items())
for id, document in duplicates:
...
3.遍历p1“与” p2。
如果通过“与”搜索并使用iter您来搜索两个帖子,那么collections.ChainMap最好再遍历(几乎)多个帖子中的所有项目:
from collections import ChainMap
for id, document in ChainMap(p1, p2):
...