TD 6 - Tuples, Dictionnaires Et Ensembles
TD 6 - Tuples, Dictionnaires Et Ensembles
TD 6 - Tuples, Dictionnaires Et Ensembles
Exercice 1
Soit une liste de tuples, écrire un programme python pour trier les tuples suivant le deuxième
élément (item) de chaque tuple.
Exemples:
Input : [('for', 24), ('Geeks', 8), ('Geeks', 30)]
Output : [('Geeks', 8), ('for', 24), ('Geeks', 30)]
On dispose d’un dictionnaire associant à des prénoms de commerciaux d’une société le nombre
de ventes qu’ils ont réalisées. Par exemple :
1) Écrivez une fonction qui prend en paramètre un tel dictionnaire et renvoie le nombre
total de ventes dans la société.
2) Écrivez une fonction qui prend en entrée un tel dictionnaire et renvoie le prénom du
vendeur ayant réalisé le plus de ventes. Si plusieurs vendeurs sont ex-aequo sur ce
critère, la fonction devra retourner le nom de l’un d’entre eux.
1ère année LIG Atelier Python
Exercice 5
Écrivez une fonction qui prend en entrée une chaîne de caractères comprenant, sur chaque ligne,
trois champs séparés par des caractères ‘ ; ’ (un numéro d’étudiant, un nom et un prénom) et
retourne un dictionnaire dont les clés sont les numéros d’étudiants lus et les valeurs sont, pour
chaque numéro d’étudiant, une chaîne correspondant à la concaténation des prénom et nom de
la personne. On pourra tester la fonction avec la chaîne suivante :
chaine_etudiants = """213615200;BESNIER;JEAN
213565488;DUPOND;MARC
214665555;DURAND;JULIE"""
Exercice 6
Écrivez une fonction qui prend en entrée un dictionnaire associant à un nom une liste de notes
et qui retourne la liste des noms des personnes qui ont la moyenne la plus élevée (s’il y a des ex-
aequo, cette liste contiendra plusieurs éléments, sinon, elle n’en contiendra qu’un) et la
moyenne correspondante. On pourra utiliser le dictionnaire suivant pour tester la fonction ainsi
écrite :
notes = {"Tom": [8, 10, 12], "Mila": [10, 9], "Alex": [], "Lina": [12, 10, 8]}
Exercice 7
Écrivez une fonction qui prend en entrée une liste de dictionnaires et retourne un dictionnaire
fusionnant les informations de ces dictionnaires de la manière suivante : pour chaque clef
présente dans au moins un dictionnaire, la valeur associée sera la liste des valeurs associées à
cette clef dans les dictionnaires passés en argument à la fonction.
{'a': [1, 1, 2], 'd': [4], 'g': [7], 'b': [2], 'h': [[8], 9], 'c': [3]}
1ère année LIG Atelier Python
Exercice 8
1. Ecrire une fonction freqChaine qui prend une chaîne de caractères et renvoie un dictionnaire
qui contient pour chaque lettre de la chaîne son nombre d’occurrences.
Par exemple, freqChaine(’abbabba!’) renverra { ’a’ : 3 , ’b’ : 4, ’!’ : 1}.
2. Ecrire une fonction maxDic qui prend en paramètre un dictionnaire (dont les valeurs sont
des nombres) et renvoie la clé correspondant à la plus grande valeur.
Par exemple, maxDic(’a’: 3, ’b’ : 5 , ’c’ : 0, ’d’ : 10) renverra ’d’.
3. Ecrire une fonction triCles qui prend un dictionnaire (dont les valeurs sont des nombres) et
renvoie la liste des clés du dictionnaire par ordre de valeurs décroissantes dans le dictionnaire.
Par exemple, maxDic(’a’: 3, ’b’ : 5 , ’c’ : 0, ’d’ : 10) renverra [’d’,’b’,’a’,’c’].
Exercice 9
1. Qu’affiche le code suivant ?
dict ={ 0:4 ,3:5 ,5:8 ,7:7 ,8:9 }
s1=set ( dict )
print ( s1 )
2. Créer l’ensemble s2 des valeurs du dictionnaire dict.
3. Qu’affiche le code suivant ?
print(s1 | s2)
print(s1 & s2)
print(s1 <= s2 )
4. Comment savoir combien il y a d’éléments dans s1 et si un élément donné est dedans ?
Exercice 10
Créez une fonction compte_mots_2_lettres() qui prend comme argument une séquence sous la
forme d'une chaîne de caractères et qui renvoie tous les mots de 2 lettres qui existent dans la
séquence sous la forme d'un dictionnaire. Par exemple pour la séquence ACCTAGCCCTA, le
dictionnaire renvoyé serait :
{'AC': 1, 'CC': 3, 'CT': 2, 'TA': 2, 'AG': 1, 'GC': 1}
Créez une nouvelle fonction compte_mots_3_lettres() qui a un comportement similaire à
compte_mots_2_lettres() mais avec des mots de 3 lettres.
Utilisez ces fonctions pour affichez les mots de 2 et 3 lettres et leurs occurrences trouvés dans
la séquence d'ADN :
ACCTAGCCATGTAGAATCGCCTAGGCTTTAGCTAGCTCTAGCTAGCTG
Voici un exemple de sortie attendue :
Mots de 2 lettres
AC : 1 CC : 3 CT : 8 [...]
1ère année LIG Atelier Python
Mots de 3 lettres
ACC : 1 CCT : 2 CTA : 5 [...]