Skip to content

Dictionnaires

Un dictionnaire est une structure de données qui contient une collection non ordonnée (pas d'indice) de couples clé/valeur (pouvant être de types différents)

Dictionnaires#

Déclarer un dictionnaire

dico = {cle1: valeur1, cle2: valeur2, }
dico_vide = {}

On accède aux valeurs d'un dictionnaire par ses clés

dico[cle]

Liste des clés d'un dictionnaire : dico.keys()
Liste des valeurs d'un dictionnaire : dico.values()
Liste des couples clé/valeur d'un dictionnaire : dico.items()

Note

Les liste retourné se comportent presque comme des listes mais n'en sont pas tout à fait. On peut obtenir une vraie liste en faisant : list(dico.keys())

for cle, valeur in dico.items():
    print(f"La clé {cle} contient {valeur}")

Longueur (nb. de couples) d'un dictionnaire

len(dico)

Note

len fonctionne sur beaucoup de types qui ont une longueur : str, list, tuple, dict, set, range

Tester l'existence d'une clé

if cle in dico      #retourne True si la clé existe

Modifier une valeur ou Ajouter un couple (selon si la clé existe ou pas)

dico[cle] = valeur

Supprimer un couple

del dico[cle]

Vider un dictionnaire

dico.clear()

Pratique 7#

Exercice A#

Créer un programme python exo7_a.py qui créer un dictionnaire associant à chaque base de l'ADN la chaine "purinique" (C et G) ou "pyrimidinique" (A et T) selon la base : puis qui demande à l'utilisateur (fonction input()) d'entrer une base, et enfin qui affiche si la base entrée par l'utilisateur est purinique ou pyrimidique.

Exercice B#

En utilisant un dictionnaire et la fonction in (clef in dictionnaire), créer un programme python exo7_b.py qui stocke dans un dictionnaire le nombre d’occurrences de chaque acide aminé de la séquence AGWPSGGASAGLAILWGASAIMPGALW, puis afficher ce dictionnaire.

Votre programme doit afficher :

{'P': 2, 'I': 2, 'W': 3, 'G': 6, 'L': 3, 'A': 7, 'M': 1, 'S': 3}

Exercice C#

Voila un dictionnaire faisant correspondre à chaque espèce la longueur de son génome :

dico_espece = {'Escherichia coli':3.6,'Homo sapiens':3200,'Saccharomyces cerevisae':12,'Arabidopsis thaliana':125}

Créer un programme python exo7_c.py dans lequel vous créez ce dictionnaire et qui permet d'afficher le nom de l'organisme possédant le plus grand génome.

Exercice D#

Le fichier sequences_especes.tsv est un fichier tabulé (2 colonnes séparées par des tabulations) contenant un identifiant de séquence dans la première colonne, et l’espèce associée dans la secondes colonne.

Homo sapiens    27292
Saccharomyces cerevisiae S288C  850883
Homo sapiens    55226
Mus musculus    19791

Créez un script exo7_d.py qui lit ce fichier et, à l’aide d’un dictionnaire, écrit un fichier de sortie qui contient le nom d’une espèce précédé d’un dièze sur une ligne puis tous les identifiants de séquence associés à cette espèce sur les lignes suivantes.

# Homo sapiens
27292
55226
....
# Saccharomyces cerevisiae S288C
850883
....