Maison > développement back-end > Tutoriel Python > Comment gérer les clés en double lors de la création d'un dictionnaire Python ?

Comment gérer les clés en double lors de la création d'un dictionnaire Python ?

DDD
Libérer: 2024-12-28 16:34:10
original
712 Les gens l'ont consulté

How Do I Handle Duplicate Keys When Creating a Python Dictionary?

Gestion des clés en double dans les dictionnaires Python

En Python, les dictionnaires sont une structure de données essentielle pour mapper les clés aux valeurs. Cependant, les dictionnaires ne prennent pas automatiquement en charge les clés en double, ce qui peut poser problème lorsque vous travaillez avec certains types de données.

Problème :

Supposons que vous ayez un fichier texte contenant dupliquez les numéros d'immatriculation des voitures avec des valeurs variables, comme indiqué ci-dessous :

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

Vous souhaitez créer un dictionnaire dans lequel les numéros d'immatriculation sont des clés et les données de chaque ligne sont les valeur. Cependant, l'utilisation de la syntaxe standard du dictionnaire écrasera l'ancienne valeur par la nouvelle lorsque des clés en double sont rencontrées.

Solution :

Pour gérer les clés en double, une solution courante consiste à utiliser un dict par défaut du module collections :

from collections import defaultdict

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

Au lieu d'attribuer une seule valeur à la clé en double, vous ajoutez la nouvelle valeur à une liste associée à cette clé :

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

Cela créera un dictionnaire où chaque clé correspond à une liste de valeurs. Par exemple :

data_dict = {
    'EDF768': [
        ('Bill Meyer', '2456', 'Vet_Parking'),
        ('Jenny Meyer', '9987', 'Vet_Parking'),
    ],
    'TY5678': [
        ('Jane Miller', '8987', 'AgHort_Parking'),
        ('Jo King', '8987', 'AgHort_Parking'),
    ],
    ...
}
Copier après la connexion

De cette façon, vous pouvez accéder à toutes les données associées à un numéro d'immatriculation donné en accédant à la liste correspondante dans le dictionnaire.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal