Votre question n'est pas assez précise pour donner une réponse unique.
1. Intersection clé
Si vous voulez intersecter ID
à partir de postes ( crédits à James ) font :
common_ids = p1.keys() & p2.keys()
Cependant, si vous voulez itérer des documents, vous devez considérer quel poste a une priorité, je suppose que c'est p1
. Pour itérer les documents pour common_ids
, collections.ChainMap
sera des plus utiles :
from collections import ChainMap
intersection = {id: document
for id, document in ChainMap(p1, p2)
if id in common_ids}
for id, document in intersection:
...
Ou si vous ne voulez pas créer des fichiers séparés. intersection
dictionnaire :
from collections import ChainMap
posts = ChainMap(p1, p2)
for id in common_ids:
document = posts[id]
2. Articles Intersection
Si vous voulez intersecter articles des deux postes, ce qui revient à faire correspondre ID
et les documents, utilisez le code ci-dessous ( crédits à la DCPY ). Toutefois, cela n'est utile que si vous recherchez des doublons dans les termes.
duplicates = dict(p1.items() & p2.items())
for id, document in duplicates:
...
3. Faire un itération sur p1
"ET p2
.
Dans le cas où par " Recherche "ET". " et en utilisant iter
vous vouliez chercher les deux postes puis à nouveau collections.ChainMap
est le meilleur moyen d'itérer sur (presque) tous les éléments de plusieurs messages :
from collections import ChainMap
for id, document in ChainMap(p1, p2):
...