Maison > développement back-end > Tutoriel Python > Comment éviter les références à des listes partagées lors de l'initialisation de dictionnaires de listes vides en Python ?

Comment éviter les références à des listes partagées lors de l'initialisation de dictionnaires de listes vides en Python ?

Linda Hamilton
Libérer: 2024-11-26 05:43:09
original
376 Les gens l'ont consulté

How to Avoid Shared List References When Initializing Empty List Dictionaries in Python?

Initialisation du dictionnaire de listes vides en Python

Tenter de créer un dictionnaire de listes à l'aide de la méthode fromkeys peut entraîner un comportement inattendu où tous les clés du dictionnaire sont mises à jour lors de l'ajout à une clé. En effet, fromkeys crée un objet de liste unique et le référence comme valeur pour toutes les clés.

Pour résoudre ce problème, utilisez une compréhension de dictionnaire :

data = {k: [] for k in range(2)}
Copier après la connexion

Cette compréhension crée une nouvelle liste objet pour chaque clé, en garantissant que chaque clé a sa propre liste indépendante.

Alternativement, dans les versions Python antérieures à 2.7, utilisez une liste compréhension transmise au constructeur dict :

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

ou, dans Python 2.4-2.6, une expression génératrice peut être transmise à dict :

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

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