Maison >développement back-end >Tutoriel Python >Comment éviter les références partagées lors de la création de dictionnaires de listes vides en Python ?
Comprendre les défis liés à la création de dictionnaires de listes vides
En Python, créer un dictionnaire de listes vides peut être délicat en raison de la référence partagée de l'objet liste lors de l'utilisation de dict.fromkeys(). Tentative d'ajout d'un élément à une clé, met à jour toutes les clés avec le même élément en raison de la référence.
Comportement de la méthode Fromkeys
Lorsque le deuxième argument de dict.fromkeys (), une liste vide dans ce cas, est transmise, toutes les valeurs du dictionnaire résultant partagent la même référence à l'objet liste. Toute modification apportée à une clé affecte toutes les autres clés.
Solutions alternatives
Pour éviter ce problème, des solutions alternatives existent :
data = {k: [] for k in range(2)}
Cela crée un dictionnaire dans lequel chaque clé a sa propre liste vide et unique.
data = dict([(k, []) for k in range(2)])
Cela permet d'obtenir le même résultat comme compréhension de dict en convertissant la compréhension de liste en dictionnaire.
data = dict((k, []) for k in range(2))
Dans cette version, une expression génératrice est transmise directement au constructeur dict, en contournant l'étape de compréhension de la liste. Les parenthèses entourant l'expression peuvent être omises.
En utilisant ces méthodes alternatives, des dictionnaires de listes vides peuvent être créés correctement, permettant la manipulation de clés individuelles sans affecter les autres clés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!