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
DDDoriginal
2024-12-28 16:34:10675parcourir

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

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)

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)

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'),
    ],
    ...
}

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!

Déclaration:
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