CPGE OUJDA SUP
Dictionnaires
Un dictionnaire est un un type de données mutable.
À la différence des listes et des strings qui sont ordonnées et indexées par intervalle numérique, les dictionnaires sont non ordonnés et indexés par des clefs.
Un dictionnaire est un ensemble non ordonné de couples
clef-valeur.
>>>
phone
=
{}
>>> phone["Gary"] = 3766
>>> phone["Thierry"] = 5603
>>> phone["Alain"] = 1234
>>> print(phone)
{'Gary': 3766, 'Alain': 1234, 'Thierry': 5603}
Les clefs doivent être immutables (nombres, chaînes, tuples). Les valeurs peuvent être de n’importe quel type.
Opérations sur les dictionnaires
>>>
phone.items()
#
Liste
des
éléments
(paires)
dict_items([('Gary', 3766), ('Alain', 1234), ('Thierry', 5603)])
>>> phone.keys() # Itérateur contenant les clef
dict_keys(['Alain', 'Thierry', 'Gary'])
>>> list(phone.keys()) # Liste des clefs
['Alain', 'Thierry', 'Gary']
>>> phone.values() # Itérateur des valeurs
dict_values([1234, 5603, 3766])
>>> list(phone.values()) # Liste des valeurs
[1234, 5603, 3766]
>>> for key in phone: # Itération
... print(key + ": " + str(phone[key]))
...
Alain: 1234
Thierry: 5603
Gary: 3766
>>>
"Gary"
in
phone
#
Test
d'existence
de
clef
True
>>> del phone["Thierry"] # Suppression
>>> print(phone)
{'Alain': 1234, 'Gary': 3766}
>>> print(phone["Thierry"]) # Clef inexistante -> Erreur
...KeyError: 'Thierry'
>>> print(phone.get("Thierry")) # Clef inexistante -> None
None
>>> print(phone.get("Thierry", 1307)) # Clef inexistante -> ...
1307 # Valeur choisie
# (renseignements)
Exemple d’utilisation
def
occurrences(word):
dic = {}
for char in word:
dic[char] = dic.get(char, 0) + 1
return dic
print(occurrences("banane"))
Affiche
{'a':
2,
'b':
1,
'e':
1,
'n':
2}
Exercices :
Ex. 1. Écrire une fonction qui renvoie un dictionnaire composé du nombre d’occurrences de tous les mots de 2 lettres (AA, AC, AG, . . . ) qui existent dans une séquence nucléotidique.
Exemple
:
>>>
dico
=
occurrences_of_2_char("ACCTAGCCATGTAGAATCGCCTAGGCTTTAGCTAGCTCTAGCTAGCTG")
>>> print(dico)
{'AA': 1, 'AC': 1, 'GT': 1, 'AG': 7, 'CC': 3, 'CA': 1, 'CG': 1,
'TT': 2, 'GG': 1, 'GC': 7, 'AT': 2, 'GA': 1, 'TG': 2, 'CT': 8,
'TC': 2, 'TA': 7}
Ex. 2. Écrire une fonction qui affiche un dictionnaire de la façon suivante :
Key
:
GT
-
Value
:
1
Key : CT - Value : 8
...
Bonus : afficher les clefs dans l’ordre alphabétique.