CH8 Dictionnaires Et Tuples
CH8 Dictionnaires Et Tuples
CH8 Dictionnaires Et Tuples
8.1. Dictionnaires
Les dictionnaires se révèlent très pratiques lorsque vous devez manipuler des structures complexes à décrire et que
les listes présentent leurs limites.
Les dictionnaires sont des collections non ordonnées d'objets, c-à-d qu'il n'y a pas de notion d'ordre. On accède aux
valeurs d'un dictionnaire par des clés. Regardez l'exemple suivant :
ani1 = {}
ani1['nom'] = 'girafe'
ani1['taille'] = 5.0
ani1['poids'] = 1100
ani1 {'nom': 'girafe', 'poids': 1100, 'taille': 5.0}
ani1['taille'] 5.0
8.2. Tuples
Les tuples correspondent aux listes à la différence qu'ils sont non modifiables. Pratiquement, ils utilisent les
parenthèses au lieu des crochets :
X= (1,2,3)
X (1, 2, 3)
X[2] 3
X[0:2] (1, 2)
X[2] = 15 erreure!!
L'affectation et l'indiçage fonctionne comme avec les listes, mais si l'on essaie de modifier un des éléments du tuple,
Python renvoie un message d'erreur. Si vous voulez ajouter un élément (ou le modifier), vous devez créer un autre
tuple :
x = (1,2,3)
x + (4,) (1, 2, 3, 4)
10*(0,) (0,0,0,0,0,0,0,0,0,0)
5*(True,) (True, True, True, True, True)
Remarque : pour utiliser un tuple d'un seul élément, vous devez utiliser une syntaxe avec une virgule (élément,), ceci
pour éviter une ambiguïté avec une simple expression.
Autre particularité des tuples, il est possible d'en créer de nouveaux sans les parenthèses, dès lors que ceci ne pose
pas d'ambiguïté avec une autre expression :
x = (1,2,3)
X (1, 2, 3)
ou
x = 1,2,3
X (1, 2, 3)
Enfin, on peut utiliser la fonction tuple(sequence) qui fonctionne exactement comme la fonction list, c-à-d qu'elle
prend en argument un objet séquentiel et renvoie le tuple correspondant :
range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
tuple(range(10)) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
tuple("ATGCCGCT") ('A', 'T', 'G', 'C', 'C', 'G', 'C', 'T').
Remarque : les listes, dictionnaires, tuples sont des objets qui peuvent contenir des collections d'autres objets. On
peut donc construire des listes qui contiennent des dictionnaires, des tuples ou d'autres listes, mais aussi des
dictionnaires contenant des tuples, des listes, etc.
2
CPGE Informatique MPSI / 1TSI /PCSI
Lydex – Ben guerir Programmation Mr L. BOUHOU
TD Dictionnaire et Tuples
Exercice 1
On souhaite déterminer le nombre d’occurrence de chaque lettre présente dans une chaine ch passée, comme
paramètre d’une fonction intitulée OccurrenceDic(ch) en utilisant la notion d’un dictionnaire.
La chaine est supposée ne contenant que les lettres alphabétiques.
Lors de la vérification du bon fonctionnement de cette fonction, On se donne une chaine ch puis on affichera:
- Un dictionnaire dont les clés sont les différentes lettres de la chaine et les valeurs sont les occurrences
correspondantes.
- Uniquement les différentes lettres de la chaines
- Uniquement Les occurrences correspondantes
Exercice 2
1- Etablir une fonction OccListTuple(ch) qui laisse passer, comme paramètre une chaine (supposée ne contenant
que les lettres alphabétiques) afin de retourner la liste des tuples (Caractères, occurrence). en utilisant la
notion de liste de Tuples.
2- On suppose avoir une liste de dictionnaire « LD » composé des numéros d’inscription des noms des élèves
d’une classe et de leurs notes d’examens d’écrit, d’oral et de TP comme c’est indiqué ci-dessous :
LD=[{‘’NI’’:1, ‘’Nom’’: ’’Driss’’,’’NE’’:15,75, ‘’NO’’:11, ‘’TP’’:12},
{‘’NI’’:2, ‘’Nom’’: ’’Asmaa’’,’’NE’’:13, ‘’NO’’:12, ‘’TP’’:12,5},
……………………………………………………………………………,
{‘’NI’’:25, ‘’Nom’’: ’’Rida’’,’’NE’’:10, ‘’NO’’:8,5, ‘’TP’’:9,5}]
Question: Etablir une fonction rechercher() qui accepte, comme argument, la liste de dictionnaire et un
Numéro d’inscription afin de retourner le nom, la moyenne ((NE+NO+TP)/3) et la décision du jury(Candidat
Admis/Non Admis) de l’élève ayant fourni, son numéro, à cette. La fonction retourne le message ‘Elève ne
figure pas dans cette classe’ si le matricule qu’on lui a fourni ne figure pas dans la liste de dictionnaires.