Maison >développement back-end >Tutoriel Python >Comment gérer les clés en double lors de la création d'un dictionnaire 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!