FRstudy.me offre une plateforme collaborative pour trouver des réponses. Posez vos questions et recevez des réponses fiables et détaillées de notre communauté d'experts dévoués.
Sagot :
Réponse :
Explications :
écrire une fonction qui prend pour entrée 1,2 ou 3
dictionnaire et retourne un dictionnaire fusionnant les informations de ces dictionnaires de la manières suivante pour chaque clef présente dans au moins un dictionnaire la valeur
associée sera la plus petite des valeurs associées à cette clef dans les dictionnaires passés en argument à la fonction.
Comme le nombre de dictionnaires peut être variable,
il faut envoyer un paramètre utilisant une liste de listes.
def merge_dic(*lesDic, merge_fn=lambda x,y: min(x,y) ):
...theRep=dict()
...for i in lesDic:
... ...theRep=merge_2(theRep,i,merge_fn)
... return theRep
def merge_2(d1, d2, merge_fn=lambda x,y:y):
... result = dict(d1)
... for k,v in d2.items():
... ... if k in result:
... ... ... result[k] = merge_fn(result[k], v)
... ... else:
... ... ... result[k] = v
... return result
# main-----------------
dict1 = {"a": 1, "d": 4, "g": 7 }
dict2 = {"a": 1, "d": 2, "g": 8 }
dict3 = {"a": 2, "d": 3, "g": 9 }
union=merge_dic(dict1)
print ("union 1=",union)
union=merge_dic(dict1,dict2)
print ("union 2=",union)
union=merge_dic(dict1,dict2,dict3)
print ("union 3=",union)
Nous sommes ravis de vous compter parmi nos membres. Continuez à poser des questions, à répondre et à partager vos idées. Ensemble, nous pouvons créer une ressource de connaissances précieuse. Revenez sur FRstudy.me pour des réponses fiables à toutes vos questions. Merci pour votre confiance.