class: center, middle # Dictionnaires --- # Dictionnaires * Un dictionnaire est une structure pour stocker des chiffres, des nombres, des caractères, des chaînes de caractères, ... * Les éléments stockés seront retrouvés à partir d'une clé. * La clé doit être unique. * La recherche d'une valeur se fait à partir d'une clé et non l'inverse. --- # Dictionnaires * Opérateur d'affectation Initialiser un dictionnaire vide ```python >>> sequences = {} ``` Initialiser un dictionnaire avec des valeurs ```python >>> sequences = {'seq1':'ATGC', 'seq2':'TGCC'} >>> sequences {'seq1': 'ATGC', 'seq2': 'TGCC'} ``` * Ajouter un couple clé - valeur ```python >>> sequences['seq3'] = 'GCTT' ``` Note : si la clé `seq3` existe déjà, sa valeur est remplacée. * Accéder à une valeur à partir de sa clé ```python >>> sequences['seq3'] 'GCTT' ``` --- # Dictionnaires * Lister les clés ```python >>> sequences.keys() dict_keys(['seq1', 'seq2', 'seq3']) ``` Le résultat est un objet de type `dict_keys` qui peut être converti en liste. ```python >>> list(sequences.keys()) ['seq1', 'seq2', 'seq3'] ``` * Lister les valeurs ```python >>> sequences.values() dict_values(['ATGC', 'TGCC', 'GCTT']) ``` De même pour les valeurs, le résultat est un objet de type `dict_values` qui peut être converti en liste. ```python >>> list(sequences.values()) ['ATGC', 'TGCC', 'GCTT'] ``` --- # Dictionnaires * Lister les couples clés - valeurs ```python >>> sequences.items() dict_items([('seq1', 'ATGC'), ('seq2', 'TGCC'), ('seq3', 'GCTT')]) ```
Cas d'utilisation classique (dans une boucle)
Itérer sur les clés, afficher les valeurs associées : ```python >>> for key in sequences: >>> print(key, sequences[key]) seq1 ATGC seq2 TGCC seq3 GCTT ```
Note :
sans autre précision, la boucle itère sur les clés de `sequences`.
Autre cas (itérer directement sur les valeurs)
```python >>> for seq in sequences.values(): >>> print(seq) ATGC TGCC GCTT ``` --- # Dictionnaires * Suppression d'un couple clé valeur ```python >>> sequences = {'seq1':'ATGC', 'seq2':'TGCC', 'seq3':'GCTT'} >>> del sequences['seq2'] >>> sequences {'seq1': 'ATGC', 'seq3': 'GCTT'} >>> sequences.pop('seq1') # pop() renvoie directement la valeur 'ATGC' >>> sequences {'seq3': 'GCTT'} ``` --- # Travaux Pratiques Créer un programme Python nommé « `dictionnaire.py` » ou un notebook Jupyter nommé « `dictionnaire.ipynb` » permettant de manipuler un dictionnaire et d'afficher les informations suivantes en *25 minutes d'autonomie* : * la
séquence
qui a pour nom
A.SE.SE6594
, * la
liste de tous les noms des séquences
(sans les recopier), * la
liste de toutes les séquences
(sans les recopier), * le
liste de tous les noms de séquences rangés par ordre alphabétique
, * la
longueur de la séquence "A.SE.SE7253"
, * le
1er codon et le 2ème codon de cette séquence
.