Tuples, Dictionnaires, Ensembles
Introduction
Les listes et les chaînes de caractères sont une manière d’organiser et de structurer les données. On peut également organiser les données dans d’autres structures de données. Chaque structure présente différents avantages et inconvénients suivant les situations.
Les Tuples
Syntaxe
L’identificateur (le nom) d’un tuple suit les mêmes règles que les identificateurs de variables. On définit un tuple comme suit:
T = ()
T2 = (1,) # La virgule est importante quand il y'a un seul élément
T3 = (1, "hello", 3.14, True)
On peut faire les operations de concaténation +
et de répétition *
sur un tuple
t1 = (1, 2, 3)
t2 = t1 + (4, 5)
# Donnera (1, 2, 3, 4, 5)
t3 = t1 * 2
# Donnera (1, 2, 3, 1, 2, 3)
Les tuples sont indexes de la même manière que les listes
# 0 1 2 3 <- indices
T = (1, "hello", 3.14, True)
Pour accéder aux elements du tuple :
print(T[3]) # Affichera True
print(T[0]) # Affichera 1
print(T[1]) # Affichera "hello"
Les tuples sont non modifiable
T = (1, 2, 3)
T[0] = 2
# ERREUR Les tuples sont non modifiable
Indexage négatif
Pour accéder aux elements du tuple, on peut utiliser l’indexage négatif.
Dans ce cas les caractères de la chaîne sont indexe du dernier caractère
-1
, au premier -len(T)
# -4 -3 -2 -1 <- indices
T = (1, "hello", 3.14, True)
print(T[-2]) # Affichera 3.14
L’indexage négatif revient a retrancher len(T)
de l’indice positif,
par exemple l’élément d’indice 0 peut aussi être indexe par -len(T)
.
Méthodes et fonctions sur les tuples
len(T)
permet d’obtenir le nombre d’elements d’un tuple.T.count(e)
permet de compter le nombre d’occurrence de l’élémente
dansT
T.index(e)
donne l’indice de la première occurrence de l’élémente
dansT
e in T
donneTrue
si le tupleT
contient l’élémente
,False
sinon.
Parcours d’un tuple
On peut parcourir un tuple comme suit :
for i in range(len(T)):
print(i, T[i])
Ou encore :
for i in T:
print(i)
Les tranches de tuples
On peut prendre des tranches de tuples comme on fait pour les listes.
Une tranche d’un tuple est définie par un indice de début d
, indice de
fin f
, et le pas p
utilise, avec la syntaxe : T[d:f:p]
ou T[d:f]
pour un pas de 1
Exemple
T = (1, "hello", 3.14, True)
print(T[1:3]) # Affichera ("hello", 3.14)
Si on omet l’indice de début, la tranche commencera du début du tuple. De même, si on omet l’indice de fin, la tranche finira a la fin du tuple. Si les indices début ou fin sont dans le mauvais ordre, on obtient une chaîne vide.
Les Dictionnaires
Definition
Un dictionnaire est un ensemble de couples clé - valeur. Pour définir un dictionnaire :
d = {} # dictionnaire vide
d1 = {"nom":"Ahmed", "age": 18 }
d2 = {1 :3, 2 : 9, 3: 81} # Les espaces n'ont pas d'effet.
Accès, modification, suppression
On peut accéder a une valeur a partir de sa clé :
d1 = {"nom":"Ahmed", "age": 18 }
d2 = {1 :3, 2 : 9, 3: 81}
print(d1["nom"]) # Affichera "Ahmed"
print(d2[3]) # Affichera 81
On peut ajouter un nouveau couple clé-valeur ou modifier la valeur d’une cle dans un dictionnaire comme suit :
d1 = {"nom":"Ahmed", "age": 18 }
d2 = {1 :3, 2 : 6, 3: 9}
d1["age"] = 20
d1["age"] += 1
d2[4] = 12
Pour supprimer un couple clé-valeur :
d2 = {1 :3, 2 : 6, 3: 9}
del d2[1]
# Le dictionnaire devient {2:6, 3:9}
Operations sur les dictionnaires
len(d)
permet d’obtenir le nombre de couple clé-valeur dans un dictionnaire.d.clear()
permet de vider le dictionnairecle in d
test sicle
est une clé dans le dictionnaired
(retourne un boolean)for cle in d
permet d’itérer sur les clés du dictionnaired.items()
donne la liste des couples clé-valeur du dictionnaired
d.keys()
donne la liste des clés du dictionnaired
d.values
donne la liste des valeurs du dictionnaired
Les ensembles
Definition
Un ensemble est une collection d’elements sans ordre, sans répétitions.
On définit un ensemble a partir d’une liste d’elements :
E = set() # ensemble vide
F = set([1, 5, 2, 3, 1])
print(F) # Affiche {1, 2, 3, 5}
Operation sur les ensembles
len(E)
: permet d’obtenir le nombre d’élément de l’ensembleE
E.add(e)
: Ajoute l’élémente
a l’ensembleE
E | F
: donne l’union de $E \cup F$E & F
: donne l’intersection $E \cap F$E - F
: donne la différence $E - F$