Déballage des dictionnaires avec **
Glissez pour afficher le menu
Lors de la manipulation de dictionnaires en Python, l’opérateur ** offre un moyen concis et puissant de décompacter leur contenu. Le décompactage avec ** permet de transmettre les éléments d’un dictionnaire comme arguments nommés à des fonctions ou de fusionner plusieurs dictionnaires ensemble. Cette technique est particulièrement utile pour écrire du code flexible et réutilisable capable de gérer différents ensembles de paramètres nommés.
L’opérateur ** prend un dictionnaire et étend ses paires clé-valeur en arguments nommés distincts. Cette méthode est couramment utilisée lors de l’appel de fonctions acceptant des arguments nommés, permettant de transmettre un dictionnaire directement au lieu de spécifier chaque argument individuellement. Une autre utilisation pratique consiste à fusionner deux dictionnaires ou plus dans un nouveau, où toutes les paires clé-valeur sont combinées dans un seul dictionnaire.
12345def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
Ce code illustre le décompactage de dictionnaire à l’aide de l’opérateur **. Lorsque vous placez ** devant un dictionnaire lors d’un appel de fonction, Python « déroule » les paires clé-valeur et les transmet comme arguments nommés individuels. Dans cet exemple, print_person(**person_info) est fonctionnellement identique à écrire print_person(name="Alice", age=28). Pour que cela fonctionne correctement, les clés du dictionnaire doivent correspondre exactement aux noms des paramètres définis dans la signature de la fonction.
12345defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
Ici, fusion de dictionnaires. En plaçant ** dans un nouveau littéral de dictionnaire, Python développe les paires clé-valeur de defaults et overrides dans un seul objet.
Lorsque des clés se chevauchent — comme "size" dans cet exemple — le dictionnaire apparaissant plus tard dans la séquence prend le dessus. Ici, la valeur "large" de overrides remplace "medium" de defaults, produisant un dictionnaire fusionné qui combine toutes les clés uniques tout en priorisant les valeurs les plus récentes.
1. Quel est le résultat de l'utilisation de ** sur un dictionnaire lors d'un appel de fonction ?
2. Quelle méthode permet de combiner deux dictionnaires en utilisant le dépaquetage en Python ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion