Utilisation des dictionnaires
Les dictionnaires s'avèrent souvent plus utiles que les simples listes en permettant d'utiliser des "clés", au lieu d'indices, qui peuvent être numériques, textuelles ou de n'importe quels types. Accéder à des éléments via un "nom" plutôt qu'un numéro est souvent bien plus naturel.
ICréation et modification de dictionnaires
On peut créer un dictionnaire vide et le remplir plus tard ou directement rempli :
- d=dict () ou d={} permettent de créer un dictionnaire vide.
- prix={'tomates':5, 'courgettes':3, 'avion':1000000} contiendra 3 éléments dont les clés sont des chaînes et les valeurs des entiers
- prix['tomates'] vaut 5
Les clés peuvent également être des entiers (ce qui revient à la même utilisation que les listes) :
d={0:'arthur'}
d[1]='bertrand'
d[2]=''
Les clés peuvent aussi être des listes ou des tuples, ce qui est déjà plus intéressant : d[1]='bertrand'
d[2]=''
d={}
d[1,2]='m12'
d[3,3]='m33'
d[1,2]='m12'
d[3,3]='m33'
En reprenant l'exemple du damier de l'image ci-dessous, déclarer un dictionnaire
damier
dont les clés sont des tuples représentant la position de la case et dont les valeurs sont 'noir' ou 'blanc' :

Voici quelques méthodes utiles permettant d'agir sur un dictionnaire D :
- D.del (clé) : supprime l'entrée repérée par la clé
- val=D.pop (clé) : comme pour del , mais stocke la valeur dans la variable val avant l'effacement
- keys (D) : venvoie la liste de toutes les clés de D
- values (D) : venvoie l'ensemble de toutes les valeurs de D (sans doublon)
- 'clé' in D : renvoie True si la clé est présente dans le dictionnaire.
Contrairement aux listes
in
teste les clés et non pas les valeurs.
Dans la console, créer le dictionnaire
D={'a':1, 'spip':'écureuil', (1,2):'dame', [1,2]:{}, 1:'z' }
. Dans l'ordren effectuer les opérations suivantes :
- Retirer l'élément de clé 'spip' et affecter sa valeur à une variable save
- Tester si il y a un élément dont la clé est le tuple (1,2)
- Tester si il y a un élément dont la valeur est 'z'
IIParcourir un dictionnaire
Le parcours d'un dictionnaire se fait via les clés de la manière suivante :
for
key in D:
print ('clé : ', key)
print ('valeur : ', D[key])
Les valeurs doivent être récupérée via l'indice.
print ('clé : ', key)
print ('valeur : ', D[key])
Téléchargez et éditez le fichier suivant
sécurité.py
.
- Ecrire une fonction mdp_secured (t) qui prend une chaîne de caractères t et qui renvoie True si elle contient plus de 8 caractères, au moins une majuscule, au moins un chiffre et aucun caractère spécial, False sinon.
- Parcourir le dictionnaire des utilisateurs, et écrire un message d'alerte pour chaque utilisateur dont le mot de passe n'est pas sécurisé qui précisera le problème (trop court, pas de nombre, pas de majuscule).
- On peut mettre en minuscule une chaîne de caractère t avec la méthode t.lower ()
- Pour tout chaîne s , la méthode s.isalpha () renvoie True si tous ses caractères sont alphabétiques.
- Le dictionnaire des utilisateurs a pour clés les noms des utilisateurs et pour valeurs un dictionnaire ayant deux clés : mail et pass
- Parcourir le dictionnaire utilisateurs avec une boucle for et tester les valeurs de utilisateurs[key][pass] à l\'aide des fonctions len , lower et isalpha .