您的问题不够精确,无法给出一个答案。
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.项目交集
如果要与两个帖子的项目相交,这意味着要匹配ID
s和文档,请使用下面的代码(感谢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):
...