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.
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