Lorsque vous essayez de créer un dictionnaire de listes, vous pouvez rencontrer un problème inattendu où toutes les clés du dictionnaire partagent la même référence de liste. Cela se produit lors de l'utilisation de la méthode fromkeys() et du passage d'une liste vide comme deuxième argument.
La méthode dict.fromkeys() prend deux arguments : a collection de clés et une valeur. Il crée un nouveau dictionnaire avec les clés fournies et chaque clé est mappée à la valeur spécifiée.
Cependant, si une liste vide [] est transmise comme valeur, toutes les clés du dictionnaire résultant se verront attribuer la même objet de liste. Cela signifie que toute modification apportée à une clé affectera également toutes les autres clés.
Pour créer un dictionnaire de listes distinctes, pensez à utiliser l'une des méthodes suivantes :
Compréhension des dictés (Python 2.7)
data = {k: [] for k in range(2)}
Liste Compréhension avec le constructeur dict()
data = dict([(k, []) for k in range(2)])
Expression du générateur avec le constructeur dict() (Python 2.4-2.6)
data = dict((k, []) for k in range(2))
Ces méthodes garantissent que chaque clé du dictionnaire est associée à un objet de liste distinct, permettant des mises à jour 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!