Bienvenue dans l'univers des tutoriels LIBRES !

Les membres peuvent créer des nouveaux articles ou contribuer aux articles déjà existants.
Pour voir les dernières nouveautés sur le site rendez-vous sur la page: Quoi de neuf récemment sur le Wiki ?.
Nouveau: les membres peuvent créer et proposer des QCMs aux visteurs.
En développement: tricher au scrabble en anglais et un espace membre complet.
Pour favoriser le partage des connaissances le wiki est open-source sous licence GPL et le contenu sous licence Creative Commons paternité partage à l’identique

Introduction

Dans ce mini tutoriel nous allons nous intéresser aux dictionnaires (dictionary en anglais). Les dictionnaires sont des "objets" de python permettant d'associer à un ensemble de clés (keys), une ou des valeurs (value(s)). Par exemple, comme pour un carnet d'adresses où à un nom de famille (key) vous pouvez associer différentes informations (values): prénom, adresse, numéro de téléphone, entreprise, etc. Vous vous apercevrez rapidement avec vos applications python que cette fonctionnalité est particulièrement intéressante dans de nombreuse situations.

Note:

  • Tutoriel réalisé sous python version 2.7

Déclarer un dictionnaire

Comment déclarer un dictionnaire en python ?: La syntaxe pour déclarer un dictionnaire est simple il suffit d'utiliser deux accolades (curry braces {}) comme ceci:

>>> myfirstdictionary = {}
>>> type(myfirstdictionary)
<type 'dict'>

Pour l'instant notre dictionnaire est vide ! Pour déclarer un dictionnaire avec des couples de clés et valeurs il suffit de procéder comme suit:

>>> myfirstdictionary = {'dad':'Homer', 'mom':'Marge', 'sister':'Lisa'}

où 'dad', 'mom' et 'sister' sont des clés (keys) et 'Homer', 'Marge' et 'Lisa' sont des valeurs (values). Dans cet exemple la valeur 'Homer' est associée à la clé 'dad', la valeur 'Marge' est associée à la clé 'mom' et la valeur 'Lisa' est associée à la clé 'sister'. La syntaxe pour associer une clé et une valeur est donc la suivante: clé:valeur (avec deux-points : ou "colon" en anglais), pour déclarer plusieurs clés il suffit de les séparer par des virgules ',' (comma en anglais): clé1:valeur,clé2:valeur,clé3:valeur ... Cette manière de déclarer les dictionnaires est celle que l'on rencontre le plus souvent cependant ce n'est pas la seule façon de procéder (réf.):

>>> a = {'dad':'Homer', 'mom':'Marge', 'sister':'Lisa'}
>>> b = dict(zip(['dad', 'mom', 'sister'], ['Homer', 'Marge', 'Lisa']))
>>> c = dict([('mom', 'Marge'), ('dad', 'Homer'), ('sister', 'Lisa')])
>>> d = dict({'sister': 'Lisa', 'dad': 'Homer', 'mom': 'Marge'})
>>> a == b == c == d 
True

De plus, il est aussi possible d'associer plusieurs valeurs à un même mot clé. Par exemple pour associer plusieurs valeurs au mot clé 'dad' de notre exemple il suffit de mettre les valeurs entre parenthèses () comme ceci:

>>> myfirstdictionary = {'dad':('Homer',38, 'Like duff beer'), 'mom':'Marge', 'sister':'Lisa'}

Dans cet exemple la clé 'dad' du dictionnaire myfirstdictionary possède 3 valeurs: 'Homer',38 et 'Like duff beer'.

Note:

  • les "keys" et "values" ne sont pas obligatoirement des "strings" ils peuvent parfaitement être d'autres types comme "int". Par exemple si vous tapez: dictionarytest = {13:'vendredi'} c'est également une déclaration de dictionnaire valable.

Travailler avec les dictionnaires

Ci dessus nous avons vu comment déclarer un dictionnaire sous python nous allons à présent voir comment manipuler ces derniers.

Obtenir une liste des clés
>>> myfirstdictionary.keys()
['dad', 'sister', 'mom']
Obtenir une liste des valeurs
>>> myfirstdictionary.values()
['Homer', 'Lisa', 'Marge']
Imprimer le nombre de clés dans le dictionnaire
>>> len(myfirstdictionary)
3
Obtenir une valeur associée à une clé donnée
>>> myfirstdictionary['dad']
'Homer'
>>> myfirstdictionary['sister']
'Lisa'
Changer une valeur
>>> myfirstdictionary['sister'] = 'Maggie'
>>> myfirstdictionary
{'dad': 'Homer', 'sister': 'Maggie', 'mom': 'Marge'}
Supprimer une clé
>>> del myfirstdictionary['mom']
>>> myfirstdictionary
{'dad': 'Homer', 'sister': 'Maggie'}
Vider un dictionnaire
>>> myfirstdictionary.clear()
>>> myfirstdictionary
{}
Ajouter une clé
>>> myfirstdictionary = {'dad': 'Homer', 'sister': 'Maggie'}
>>> myfirstdictionary['mom'] = 'Marge'
>>> myfirstdictionary
{'dad': 'Homer', 'sister': 'Maggie', 'mom': 'Marge'}
Tester si une clé est dans le dictionnaire
>>> myfirstdictionary = {'dad':'Homer', 'mom':'Marge', 'sister':'Lisa'}
>>> myfirstdictionary.has_key('dad')
True
>>> myfirstdictionary.has_key('grandpa')
False
Ajouter des valeurs à une clé déjà existante
>>> myfirstdictionary = {}
>>> myfirstdictionary['dad'] = ['Homer']
>>> myfirstdictionary['dad'].append('Like duff beer')
>>> myfirstdictionary
{'dad': ['Homer', 'Like duff beer']}
Boucle sur les clés et valeurs
>>> myfirstdictionary = {'dad': 'Homer', 'sister': 'Maggie'}
>>> for key, value in myfirstdictionary.iteritems():
...     print key, value
... 
dad Homer
sister Maggie

Références

Liste non exhaustive des liens consultés pour cet article:

Lien Description
Lien (externe) 1 Dictionary doc
Lien (externe) 2 Tutorial python
Lien (externe) 3 Tutoriel video en anglais sur les dictionnaires
Lien (externe) 4 Question sur stackoverflow: Python, get dictionary key as variable directly (not by searching from value)
Lien (externe) 5 Question sur stackoverflow: Is Python dict an Object?
Lien (externe) 6 Question sur stackoverflow: Python dictionary from an object's fields
Lien (externe) 7 Question sur stackoverflow: Python dictionary from an object's fields
Lien (externe) 8 Python — Basics of Python Dictionary: Looping & Sorting
Lien (externe) 9 Iterating over Dictionaries…For Loops in Python (stackoverflow)