Maison > Article > développement back-end > Comment créer un dictionnaire de listes en Python
Un dictionnaire en Python est une collection de données stockées sous forme de paires clé-valeur. Nous pouvons attribuer différents types de données comme valeurs pour les clés. Il aide les codeurs à stocker les données et les genres de catégories et à créer la base de données en conséquence.
D'un autre côté, les listes stockent également des données, mais ici les éléments ne sont pas associés à plusieurs valeurs. Les dictionnaires et les listes sont tous deux indexés. Dans les listes, nous stockons les données sous forme de séquences, et ces séquences peuvent être parcourues et manipulées.
Dans cet article, nous allons fusionner ces deux formats et créer un dictionnaire de listes. Avant d’aborder le sujet, faisons un rapide aperçu de cet article.
Pour la création de dictionnaire, nous utilisons des accolades "{}". Regardons la syntaxe -
dict1 = {"Car": "AUDI"}
Ici, « Voiture » est la clé et « AUDI » est la valeur clé.
Pour la création de listes, nous utilisons des crochets "[]". Regardons la syntaxe -
lis1 = ["Name", "age", "gender", "qualification"]
Ici, « nom », « âge », « sexe » et « qualification » sont des éléments de la liste « lis1 ».
Lorsque nous essayons de combiner ces formats pour générer un dictionnaire de listes, cela signifie que nous devons traiter les listes comme des paires clé-valeur. Mais la question est de savoir si la liste agit comme des clés ou des valeurs. La règle d'attribution d'une clé est qu'elle doit être « immuable » ou immuable.
Par conséquent, une liste ne peut pas servir de clé de dictionnaire. Ainsi, lorsqu'il s'agit d'un dictionnaire de listes, nous traitons les listes comme des « valeurs » de clés immuables.
Dans cette méthode, nous nommons directement les clés et leur attribuons une liste de valeurs. Voyons sa mise en œuvre -
dict1 = {} dict1["Name"] = ["RAM", "RAVI", "TARUN", "MOHAN"] #assigning 1st key dict1["Age"] = [22, 23, 18, 27] #assigning 2nd key print(dict1)
{'Name': ['RAM', 'RAVI', 'TARUN', 'MOHAN'], 'Age': [22, 23, 18, 27]}
Ici, nous créons un dictionnaire vide puis attribuons les valeurs clés en externe. "Nom" est la première clé et "Age" est la deuxième clé.
Si nous inversons l'ordre, c'est-à-dire que nous spécifions liste comme clé de ce dictionnaire, alors voyons ce qui se passe -
dict1 = {["Name", "Age", "Gender"]: "RAVI"}
dict1 = {["Name", "Age", "Gender"]: "RAVI"} TypeError: unhashable type: 'list'
génère une erreur car les listes ne sont pas de nature immuable et ne peuvent donc pas être utilisées comme clés.
dict() et defaultdict peuvent être utilisées pour générer des dictionnaires de liste. Voyons la mise en œuvre -
from collections import defaultdict lis1 = [("Name", "Arjun"), ("Age", 22), ("Age", 23), ("Age", 28), ("Name", "RAVI"),("Name", "ADITYA")] dict1 = defaultdict(list) for keys, values in lis1: dict1[keys].append(values) print(dict1)
defaultdict(<class 'list'>, {'Name': ['Arjun', 'RAVI', 'ADITYA'], 'Age': [22, 23, 28]})
La chose intéressante à propos de cette méthode est qu'elle permet de transmettre les informations de la liste entre parenthèses pour chaque valeur. Cela signifie que pour une tranche donnée, nous ne pouvons transmettre qu’une seule valeur clé.
Si nous voulons incrémenter la valeur de la clé, nous avons besoin d'un nouveau support avec le nom de clé correct. Cela augmente la lisibilité du programme.
Ici, nous avons importé le module collections pour utiliser la méthode "defaultdict". Nous avons transmis la liste dans le bon ordre d'information. Nous utilisons la méthode defaultdict pour ce faire car elle est plus efficace et crée une valeur par défaut au cas où une clé serait manquante. Nous parcourons la liste et ajoutons chaque paire clé et valeur au dictionnaire.
setdeafault() est utilisée pour renvoyer la valeur du dictionnaire associée à la clé donnée. La particularité de cette méthode est que si la clé spécifiée n'existe pas, elle crée cette clé spécifique en l'insérant. Voyons la mise en œuvre -
dict1 = {} lis1 = [23, 24, 28, 12, 22] for key in lis1: for values in range(int(key), int(key)+4): dict1.setdefault(values, []).append(key) print(dict1)
{23: [23, 22], 24: [23, 24, 22], 25: [23, 24, 22], 26: [23, 24], 27: [24], 28: [28], 29: [28], 30: [28], 31: [28], 12: [12], 13: [12], 14: [12], 15: [12], 22: [22]}
En utilisant cette méthode, nous pouvons créer un enregistrement pour chaque clé. Le problème avec cette approche est le choix du type de données, seules les entrées numériques peuvent être considérées comme des valeurs de plage.
Ici,
Nous créons un dictionnaire vide puis lui transmettons une liste dans laquelle les informations sont stockées.
Nous parcourons la liste et séparons les clés et les valeurs. Nous créons chaque entrée numérique sous forme de clé, puis après avoir utilisé une autre "boucle for", nous définissons la plage d'initialisation de la valeur.
Nous ajoutons les valeurs et leurs clés au dictionnaire vide.
Enfin, nous avons imprimé le dictionnaire.
Dans cet article, nous avons découvert les concepts de base de la création et du traitement de dictionnaires. Nous avons discuté de diverses méthodes de création d'un dictionnaire de listes et examiné les complexités et les limites de chaque méthode.
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!