Bienvenue dans l'univers des tutoriels LIBRES !

Vous pouvez maintenant créer vos propres articles sur le wiki et contribuer aux articles déjà existants en quelques clics seulement ! Quoi de neuf ?
Science-emergence est un site open source sous licence GPL.

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)