Maison > développement back-end > Tutoriel Python > Comment « defaultdict » de Python peut-il gérer les clés en double dans les dictionnaires ?

Comment « defaultdict » de Python peut-il gérer les clés en double dans les dictionnaires ?

Susan Sarandon
Libérer: 2024-12-21 03:11:10
original
620 Les gens l'ont consulté

How Can Python's `defaultdict` Handle Duplicate Keys in Dictionaries?

Surmonter les clés en double dans les dictionnaires Python

En Python, les dictionnaires sont des structures de données qui mappent des clés uniques aux valeurs associées. Cependant, que se passe-t-il lorsque vous rencontrez des clés en double dans vos données ?

Considérez un fichier texte contenant des numéros d'immatriculation de voiture en double et des informations associées, comme :

EDF768, Bill Meyer, 2456, Vet_Parking
TY5678, Jane Miller, 8987, AgHort_Parking
GEF123, Jill Black, 3456, Creche_Parking
ABC234, Fred Greenside, 2345, AgHort_Parking
...
Copier après la connexion

Vous souhaiterez peut-être créer un dictionnaire avec les numéros d'enregistrement comme clés et les données comme valeurs. Cependant, la simple utilisation de l'affectation dict[key] = value écrase les valeurs existantes associées aux clés en double.

La solution : defaultdict

Le defaultdict de Python à partir du module de collections vous permet pour surmonter cette limitation. Il s'agit d'une sous-classe de dict qui fournit des valeurs par défaut pour des clés non spécifiées.

Pour l'utiliser, remplacez simplement :

data_dict = {}
Copier après la connexion

par :

from collections import defaultdict
data_dict = defaultdict(list)
Copier après la connexion

Maintenant, à la place d'attribuer des valeurs directement, utilisez la méthode append() :

data_dict[regNumber].append(details)
Copier après la connexion

Cela créera une liste de valeurs associées à chaque clé en double, stockant efficacement toutes les données liées à ces clés.

Exemple :

Le code suivant utilise defaultdict pour créer un dictionnaire à partir des exemples de données :

from collections import defaultdict

data_dict = defaultdict(list)

for line in data_list:
    regNumber = line[0]
    # ... (rest of the code unchanged)
    data_dict[regNumber].append(details)
Copier après la connexion

Cela donnera lieu à un dictionnaire où chaque numéro d'enregistrement (clé) correspond à une liste de données associées (valeur).

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