Maison >développement back-end >Tutoriel Python >Comment « defaultdict » de Python peut-il gérer les clés en double dans les dictionnaires ?
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 ...
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 = {}
par :
from collections import defaultdict data_dict = defaultdict(list)
Maintenant, à la place d'attribuer des valeurs directement, utilisez la méthode append() :
data_dict[regNumber].append(details)
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)
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!