Bienvenue sur Laurentvidal.fr, la meilleure plateforme de questions-réponses pour trouver des réponses précises et rapides à toutes vos questions. Explorez des réponses détaillées à vos questions de la part d'une communauté d'experts dans divers domaines. Expérimentez la commodité de trouver des réponses précises à vos questions grâce à une communauté dévouée d'experts.
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)
Merci de votre visite. Nous sommes dédiés à vous aider à trouver les informations dont vous avez besoin, quand vous en avez besoin. Nous espérons que cela vous a été utile. Revenez quand vous voulez pour obtenir plus d'informations ou des réponses à vos questions. Revenez sur Laurentvidal.fr pour obtenir plus de connaissances et de réponses de nos experts.