-1
votes

Comment fusionner 2 dictionnaire où la valeur est des chaînes avec la même clé

J'ai deux dictionnaires.

gen3 = {0: 'RRPP', 1: 'RRPP', 2: 'rRPP', 3: 'rRPP', 4: 'RRPP', 5: 'RRPP', 6: 'rRPP', 7: 'rRPP',
        8: 'RrPP', 9: 'RrPP', 10: 'rrPP', 11: 'rrPP', 12: 'RrPP', 13: 'RrPP', 14: 'rrPP', 15: 'rrPP'}


2 commentaires

Y a-t-il un cas, où gen1 a une clé que gen2 ne fonctionne pas et vice versa? Si celles-ci sont incluses?


Vérifiez si len (gen1) == len (gen2) , premier


4 Réponses :


2
votes

Vous pouvez utiliser une compréhension de dictionnaire avec f-strings pour créer un nouveau dictionnaire: xxx


0 commentaires

0
votes

une compréhension dict - légèrement différente de la réponse de @ yatu. Cela fonctionnera sur toutes les clés uniques de GEN1 et GEN2 - Si une clé n'existe que dans l'un des dictionnaires, le dictionnaire résultant n'aura qu'une valeur du dictionnaire gen correspondant. XXX


1 commentaires

Une caractéristique de cette solution est que si une clé n'est présente que dans une liste, vous n'obtiendrez que le contenu de cette liste dans le résultat. Donc, avec gen1 = {0: 'aa', 1: 'bb'} et gen2 = {0: 'aa'} vous obtiendriez {0: 'AAAA', 1: 'BB'} , ce qui pourrait ne pas être ce que vous voulez arriver si des clés sont manquantes.



0
votes

Si vous êtes sûr que gen1 code> et gen2 code> ont exactement les mêmes clés, cela devrait fonctionner:

gen3 = { k: gen1[k] + gen2[k] for k in gen1 }


0 commentaires

0
votes

La réponse par yatu forte> est la meilleure solution, mais je pensais que je pensais poster une autre solution pour le souci de curiosité.

c = {k: gen1[k] + gen2[k] for k in (gen1.keys() & gen2.keys())}


0 commentaires