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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-13 17:16:09223parcourir

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

Clés en double dans les dictionnaires Python

Dans le domaine de la programmation, les dictionnaires s'avèrent inestimables pour organiser les données en mappant des clés uniques aux valeurs correspondantes. Cependant, l’implémentation standard du dictionnaire Python adhère à un principe strict : chaque clé doit rester unique au sein du dictionnaire. Cette contrainte pose un défi lorsqu'il s'agit de scénarios impliquant des clés en double dans un ensemble de données.

Création d'un dictionnaire avec des clés en double

Supposons que nous rencontrions un fichier texte contenant une immatriculation de voiture en double numéros, chacun associé à des informations différentes telles que les noms des conducteurs, les extensions téléphoniques et les emplacements de stationnement. La tâche consiste à construire un dictionnaire avec les numéros d'enregistrement comme clés et les données correspondantes comme valeurs. L'extrait suivant illustre une approche courante :

data_dict = {}
data_list = []

def createDictionaryModified(filename):
    path = "C:\Users\user\Desktop"
    basename = "ParkingData_Part3.txt"
    filename = path + "//" + basename
    file = open(filename)
    contents = file.read()
    print(contents, "\n")
    data_list = [lines.split(",") for lines in contents.split("\n")]
    for line in data_list:
        regNumber = line[0]
        name = line[1]
        phoneExtn = line[2]
        carpark = line[3].strip()
        details = (name, phoneExtn, carpark)
        data_dict[regNumber] = details
    print(data_dict, "\n")
    print(data_dict.items(), "\n")
    print(data_dict.values())

Cependant, ce code est confronté à une limitation en raison du comportement du dictionnaire par défaut de Python : les clés en double entraînent l'écrasement des valeurs précédentes. Pour contourner cela, une solution consiste à stocker des listes ou des ensembles dans le dictionnaire.

Utilisation de Collections.defaultdict

La bibliothèque standard Python fournit un outil utile à cet effet : collections.defaultdict. Cette classe initialise un dictionnaire avec une usine par défaut, garantissant qu'une clé inexistante créera une nouvelle liste ou un nouvel ensemble (en fonction de l'argument d'usine).

from collections import defaultdict

data_dict = defaultdict(list)

Pour remplir le dictionnaire avec des clés en double, il suffit remplacez l'instruction d'affectation d'origine :

data_dict[regNumber] = details

par :

data_dict[regNumber].append(details)

Cette stratégie crée efficacement un dictionnaire de listes, où chaque clé correspond à une liste de valeurs associées. En tirant parti de collections.defaultdict, vous pouvez gérer avec succès les clés en double dans vos dictionnaires Python.

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