Dictionnaire Python Comment l'utiliser pour écrire un meilleur code

Dictionnaire Python Comment l'utiliser pour écrire un meilleur code / La programmation

Un dictionnaire python est une structure de données similaire à un tableau associatif trouvé dans d'autres langages de programmation. Un tableau ou une liste indexe les éléments par position. Un dictionnaire, par contre, indexe les éléments par clés qui peuvent être des chaînes. Pensez à un dictionnaire comme un ensemble non ordonné de valeur clé paires.

Dans cet article, nous vous initions à l'utilisation du dictionnaire python..

Créer un dictionnaire

Il existe plusieurs façons de créer un dictionnaire python. La plus simple utilise l’initialisation par accolade, avec une syntaxe rappelant celle de JSON. Comment obtenir la communication entre Python et JavaScript avec JSON Comment la communication avec Python et JavaScript avec JSON Aujourd'hui, je vais vous montrer comment utiliser JSON pour envoyer des données JavaScript à Python. . Je vais expliquer comment installer un serveur Web, ainsi que tout le code dont vous avez besoin. Lire la suite .

utilisateurs = 'prénom': 'John', 'nom': 'Smith', 'age': 27 

Vous pouvez aussi utiliser des chiffres comme touches. Veillez toutefois à utiliser des nombres à virgule flottante comme clés, car l'ordinateur les stocke à titre approximatif. Par conséquent, la gestion de la mémoire a un impact significatif sur les performances du système. Nous expliquons ici comment fonctionne la RAM et si vous pouvez faire quelque chose pour augmenter son efficacité. Lire la suite .

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent print rain_percent [1980] # empreintes 1980: '17%', 1981: '15% ', 1982: '10% ' 17% 

Spécification des paires clé-valeur

Vous pouvez également créer et initialiser un dictionnaire en utilisant des paires nom-valeur comme arguments de mot clé du dict () constructeur.

population = dict (Californie = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) imprimer population # empreintes 'Connecticut': 3574097, 'Delaware': 897934, 'Californie': 37253956, 'Colorado': 5029196 

Tableau de nuplets valeur-clé

Un autre moyen de créer un dictionnaire consiste à utiliser un tableau de nuplets valeur-clé. Voici le même exemple que ci-dessus.

pairs = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] population = dict (paires) population d'impression # empreintes 'Connecticut': 3574097, 'Delaware': 897934, 'Californie': 37253956, 'Colorado': 5029196 

Compréhension Dict

La compréhension de dictée fournit une syntaxe intéressante pour initialiser un dict si vous pouvez calculer les valeurs en fonction des clés. Ce qui suit initialise un dict de nombres et des valeurs carrées pour une plage de nombres.

print x: x ** 2 pour x in xrange (10, 20) # empreintes 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17 : 289, 18: 324, 19: 361 

Comment ça marche? La dernière partie (pour x dans xrange (10, 20)) renvoie une plage de nombres dans la plage spécifiée. La partie de compréhension de dict (x: x ** 2…) boucle sur cette plage et initialise le dictionnaire.

Travailler avec un dictionnaire Python

Que pouvez-vous faire avec les dictionnaires une fois que vous les avez créés? Eh bien, vous pouvez accéder aux éléments, mettre à jour les valeurs, supprimer des éléments, etc..

Accéder aux éléments du dictionnaire Python

Accédez à un élément d'un dict en utilisant la clé entre crochets, exactement comme vous le feriez d'un tableau ou d'une liste. Fonctionnement des tableaux et des listes en Python Fonctionnement des tableaux et des listes en Python Les tableaux et les listes figurent parmi les structures de données les plus utiles en programmation: bien que peu de gens les utilisent pleinement. Lire la suite .

nombre d'imprimés ['Delaware'] # empreintes 897934 

Si la clé est un nombre, vous n'avez pas besoin des guillemets. L’expression semble alors ressembler à une liste ou un tableau d’indexation.

print rain_percent [1980] # imprime 17% 

Le type de clé utilisé pour y accéder doit correspondre à ce qui est stocké dans le dictionnaire Python. Ce qui suit provoque une erreur puisque les clés stockées sont des nombres et que la clé d'accès est une chaîne..

x = '1980' print rain_percent [x] # résultats pour 1 x = '1980' ----> 2 print rain_percent [x] KeyError: '1980' 

Accéder à une clé inexistante est une erreur.

rain_percent = 1980: '17% ', 1981: '15%', 1982: '10% ' print rain_percent [1983] # affiche 1 rain_percent = 1980: '17%', 1981: '15% ', 1982. : '10% ' ----> 2 print rain_percent [1983] KeyError: 1983 

Pour accéder à une clé et fournir une valeur par défaut si le mappage n'existe pas, utilisez la commande obtenir() méthode avec la valeur par défaut comme second argument.

print rain_percent.get (1985, '0%') # imprime 0% 

Vérification de l'existence

Que faire si vous voulez vérifier la présence d’une clé sans tenter réellement d’y accéder (et éventuellement rencontrer un KeyError comme ci-dessus)? Vous pouvez utiliser le dans mot-clé sous la forme clé dans dct qui retourne un booléen.

print 1980 in rain_percent print '1980' in rain_percent # prints True False 

Inverser la condition (c’est-à-dire s’assurer que la clé n’est pas présente dans le dictionnaire Python) en utilisant le formulaire clé pas dans dct. Ceci est équivalent à la négation standard en python pas clé dans dct.

print 1980 pas dans rain_percent print 1985 pas dans rain_percent # prints False True 

Modifier des éléments

Changer la valeur en assignant à la clé requise.

users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 utilisateurs ['age'] = 29 imprimer utilisateurs # empreintes 'nom': 'Smith', 'age': 29, 'prénom': 'John' 

Utilisez la même syntaxe pour ajouter un nouveau mappage au dictionnaire Python.

users ['dob'] = '15 -sep-1971 'print users # prints ' dob ': '15 -sep-1971', 'nom': 'Smith', 'age': 29 ans, 'prenom': ' John' 

Mettre à jour plusieurs éléments d’un dictionnaire en une seule fois à l’aide de la touche mettre à jour() méthode.

users = 'prénom': 'John', 'dernier nom': 'Smith', 'age': 27 users.update ('age': 29 ans, 'dob': '15 -sep-1971 ') print users # prints 'dob': '15 -sep-1971 ',' nom ':' Smith ',' age ': 29 ans,' prénom ':' John ' 

Définissez une valeur par défaut pour une clé à l'aide de définir par defaut(). Cette méthode définit la valeur de la clé si le mappage n'existe pas. Il retourne la valeur actuelle.

# ne change pas la valeur actuelle print users.setdefault ('prénom', 'Jane') # imprime John # définit la valeur print users.setdefault ('ville', 'NY') # imprime NY # La valeur finale imprime utilisateur # imprime ' nom ':' Smith ',' age ': 27 ans,' prénom ':' John ',' ville ':' NY ' 

Suppression d'éléments

Supprimez les correspondances dans le dictionnaire en utilisant le del opérateur. Cet opérateur ne retourne rien.

Vous allez rencontrer un KeyError si la clé n'existe pas dans le dictionnaire.

users = 'prenom': 'John', 'prenom': 'Smith', 'age': 27 del users ['age'] print users # prints 'nom': 'Smith', 'prenom': ' John' 

Utilisez le pop() méthode à la place, lorsque vous souhaitez récupérer la valeur supprimée.

users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 print users.pop ('age') print users # imprime 27 'nom': 'Smith', 'prénom ': 'John' 

Que faire si vous souhaitez supprimer une clé si elle existe, sans provoquer d’erreur si elle n’existe pas? Vous pouvez utiliser pop() et spécifier Aucun pour le deuxième argument comme suit:

users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 users.pop ('foo', Aucun) print users # prints 'nom': 'Smith', 'age ': 27,' prénom ':' John ' 

Et voici un one-liner pour supprimer un tas de clés d'un dictionnaire sans causer d'erreur sur des clés inexistantes.

utilisateurs = 'prénom': 'John', 'dernier nom': 'Smith', 'age': 27 ans, 'dob': '15 -sep-1971 ' map (lambda x: users.pop (x, Aucun) , ['age', 'foo', 'dob']) imprimer utilisateurs 

Voulez-vous supprimer toutes les clés d'un dictionnaire? Utilisez le clair() méthode.

users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 users.clear () print users # prints  

Boucler avec les dictionnaires Python

Python propose de nombreuses méthodes de mise en boucle. Fonctionnement des boucles Do-While en programmation informatique Fonctionnement des boucles Do-While en programmation informatique Les boucles sont l'un des premiers types de contrôle appris en programmation. Vous connaissez probablement les boucles while et for, mais que produit une boucle do-while? Lire plus sur les entrées d'un dictionnaire. Choisissez-en un pour vos besoins.

Boucle sur les clés

  • La méthode la plus simple pour traiter les clés (et éventuellement les valeurs) en séquence utilise une boucle de la forme suivante:
    users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 pour k dans les utilisateurs: print k, '=>', les utilisateurs [k] # imprime lastname => Smith age = > 27 prénom => John 
  • Utiliser la méthode iterkeys () fonctionne exactement comme ci-dessus. Faites votre choix quant au formulaire que vous souhaitez utiliser.
    users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 pour k dans users.iterkeys (): print k, '=>', utilisateurs [k] # empreinte lastname = > Smith age => 27 prénom => John 
  • Une troisième méthode pour récupérer et traiter les clés dans une boucle implique l’utilisation de la fonction intégrée. iter ().
    users = 'prenom': 'John', 'prenom': 'Smith', 'age': 27 pour k dans iter (utilisateurs): print k, '=>', utilisateurs [k] # imprime lastname => Âge Smith => 27 prénom => John 
  • Lorsque vous avez besoin de l’index de la clé en cours de traitement, utilisez la commande énumérer() fonction intégrée comme indiqué.
    users = 'prénom': 'John', 'prénom': 'Smith', 'age': 27 pour l'index, entrez la clé (utilisateurs): index d'impression, clé, '=>', utilisateurs [k] # imprime 0 nom de famille => John 1 age => John 2 prénom => John 

Boucler sur des paires clé-valeur

  • Lorsque vous voulez récupérer chaque paire clé-valeur avec un seul appel, utilisez itéritems ().
    users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 pour k, v dans users.iteritems (): print k, '=>', v # imprime lastname => Âge Smith => 27 prénom => John 

Itérer sur les valeurs

  • La méthode itervalues ​​() peut être utilisé pour parcourir toutes les valeurs du dictionnaire. Bien que cette méthode ressemble à une boucle utilisant valeurs(), il est plus efficace car il n'extrait pas toutes les valeurs à la fois.
    users = 'prénom': 'John', 'dernier nom': 'Smith', 'age': 27 pour value dans users.itervalues ​​(): print value # prints Smith 27 John 

Extraire des tableaux

Les méthodes suivantes décrivent l'extraction de diverses informations du dictionnaire Python sous forme de tableau. Le tableau résultant peut être bouclé en utilisant des constructions python normales. Cependant, gardez à l'esprit que le tableau retourné peut être volumineux en fonction de la taille du dictionnaire. Donc ça pourrait être plus cher (mémoire) traiter ces tableaux plutôt que d'utiliser les méthodes d'itérateur ci-dessus.

Il est acceptable de travailler avec ces tableaux lorsque vous devez supprimer des éléments du dictionnaire lorsque vous rencontrez des éléments indésirables. L'utilisation d'un itérateur lors de la modification du dictionnaire peut provoquer une erreur RuntimeError.

  • La méthode articles() retourne un tableau de tuples valeur-clé. Vous pouvez parcourir ces paires clé-valeur comme indiqué:
    users = 'prenom': 'John', 'prenom': 'Smith', 'age': 27 pour k, v dans users.items (): print k, '=>', v # imprime lastname => Âge Smith => 27 prénom => John 
  • Récupérer toutes les clés du dictionnaire en utilisant la méthode clés().
    users = 'prénom': 'John', 'nom': 'Smith', 'age': 27 print users.keys () # prints ['nom', 'age', 'prénom'] 

    Utilisez le tableau retourné pour faire une boucle sur les clés.

    pour k dans users.keys (): print k, '=>', users [k] # imprime lastname => âge Smith => 27 prénom => John 
  • De la même manière, utilisez la méthode valeurs() pour récupérer toutes les valeurs du dictionnaire.
    pour value dans users.values ​​(): print value # imprime Smith 27 John 

Comment utilisez-vous les dictionnaires Python?

Nous avons essayé de couvrir les cas d'utilisation les plus courants des dictionnaires python dans cet article. N'oubliez pas de consulter tous nos autres articles sur Python. 10 exemples de base de Python qui vous aideront à apprendre rapidement 10 exemples de base de Python qui vous aideront à apprendre rapidement Cet article d'exemples de base de Python est destiné à ceux qui ont déjà une expérience de la programmation et veulent simplement transition vers Python le plus rapidement possible. Lisez-en plus pour obtenir encore plus de conseils sur Python 5 cours qui vous accompagneront de Python débutant à professionnel 5 cours qui vous conduiront de Python débutant à professionnel Ces cinq cours vous apprendront tout sur la programmation en Python, l'une des langues les plus populaires maintenant. Lire la suite . Si vous souhaitez inclure d'autres cas d'utilisation, veuillez nous en informer dans les commentaires ci-dessous.!

Crédits d'image: viper345 / Shutterstock

En savoir plus sur: Python.