Comment créer un dictionnaire de listes en Python

WBOY
Libérer: 2023-08-26 13:01:13
avant
2847 Les gens l'ont consulté

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.

Créer un dictionnaire

Pour la création de dictionnaire, nous utilisons des accolades "{}". Regardons la syntaxe -

dict1 = {"Car": "AUDI"}
Copier après la connexion

Ici, « Voiture » ​​est la clé et « AUDI » est la valeur clé.

Créez une liste

Pour la création de listes, nous utilisons des crochets "[]". Regardons la syntaxe -

lis1 = ["Name", "age", "gender", "qualification"]
Copier après la connexion

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.

Différentes façons de créer un dictionnaire de listes

Attribuez des valeurs à la liste sous forme d'indices

Dans cette méthode, nous nommons directement les clés et leur attribuons une liste de valeurs. Voyons sa mise en œuvre -

Exemple

dict1 = {}
dict1["Name"] = ["RAM", "RAVI", "TARUN", "MOHAN"] #assigning 1st key
dict1["Age"] = [22, 23, 18, 27] #assigning 2nd key
print(dict1)
Copier après la connexion

Sortie

{'Name': ['RAM', 'RAVI', 'TARUN', 'MOHAN'], 'Age': [22, 23, 18, 27]} 
Copier après la connexion

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 -

Exemple

dict1 = {["Name", "Age", "Gender"]: "RAVI"}
Copier après la connexion

Sortie

dict1 = {["Name", "Age", "Gender"]: "RAVI"}
TypeError: unhashable type: 'list'  
Copier après la connexion

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.

Utilisez la méthode dict ou defaultdict

Les méthodes

dict() et defaultdict peuvent être utilisées pour générer des dictionnaires de liste. Voyons la mise en œuvre -

Exemple

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)
Copier après la connexion

Sortie

defaultdict(<class 'list'>, {'Name': ['Arjun', 'RAVI', 'ADITYA'], 'Age': [22, 23, 28]})
Copier après la connexion
  • 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.

Utilisez la méthode par défaut définie

La méthode

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 -

Exemple

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)
Copier après la connexion

Sortie

{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]}
Copier après la connexion

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.

Conclusion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal