Maison > développement back-end > Tutoriel Python > Comment éviter les références à des listes partagées lors de la création d'un dictionnaire de listes vides en Python ?

Comment éviter les références à des listes partagées lors de la création d'un dictionnaire de listes vides en Python ?

Linda Hamilton
Libérer: 2024-11-30 03:44:11
original
700 Les gens l'ont consulté

How to Avoid Shared List References When Creating a Dictionary of Empty Lists in Python?

Initialisation d'un dictionnaire de listes vides en Python

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.

Comment utiliser fromkeys() correctement

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.

Solutions alternatives

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)}
Copier après la connexion

Liste Compréhension avec le constructeur dict()

data = dict([(k, []) for k in range(2)])
Copier après la connexion

Expression du générateur avec le constructeur dict() (Python 2.4-2.6)

data = dict((k, []) for k in range(2))
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal