🎲 N-Uplets & Dictionnaires
N-Uplets (Tuples)
Définition
Les n-uplets (tuples en python) sont des types construits qui permettent de créer des collections de plusieurs éléments.
En python, les tuples sont les valeurs envoyés entres parenthèses. En python, les tuples peuvent également contenir des données de types différents. Nous avons déjà rencontré les tuples avec des fonctions qui renvoyaient plusieurs paramètres
return a, b
>>> (67, 69)Manipulation et usage
Les valeurs d'un tuple sont accessible avec des crochets, comme un tableau.
t = ("1", 2, "trois")
print(t[2])
>>> troisLes tuples sont immuables. Après création (par extension ou compréhension), on ne peux pas modifier ou même append à un tuple. On obtient toujours l'erreur suivante :
t[1] = "deux"
>>> TypeError: 'tuple' object does not support item assignmentDictionnaires
Définition
Un dictionnaire est une collection de valeurs non ordonnées dont chacune est associé à une clef unique.
En python, on utilise le type dict pour implémenter les dictionnaires. On évitera de les appeler "dic" ou "dick" (vous chercherez sur google pour la signification en anglais). On peut ajouter/modifier des valeurs après la création, mais il est impossible non récursivement [1] de modifier les clefs.
d = {"a": 2, "b": 16, "c": 32}
vide = {} #ou v = dict()
comprehension = {x : x*x for x in range(5)}Construction
Il est possible de remplir un dictionnaire petit à petit
d["d"] = 48Si la clef existe déjà, l'ancienne valeur associé est écrasé par la nouvelle.
Fonctions Importantes
Pour la suite, nous assumons que d est un dictionaire
Supprimer une clef :
del d["clef]"Renvoyer toutes les clefs
d.keys()Renvoyer toutes les valeurs
d.values()Renvoyer un ensemble de tuples (clef, valeur)
d.items()Obtenir le nombre de couples
len(d)N-Uplets nommés
Nous avons vu précédemment que les éléments d'un tuple sont accessible par leurs indices. Quand les tuples sont hétérogènes (contiennent plusieurs types) ou de grande taille, ce fonctionnement n'est pas très intuitif. C'est pour cela qu'on peut utiliser les named tuples.
Il faut importer namedtuples de la bibliothèque collections. Il faut ensuite créer un objet, un template [2] pour ensuite créer nos tuples.
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
A = Point(2, 4)
B = Point(5, -3)On peut ensuite utiliser x, y = A, A.x et A.y.
