Aller au contenu

Aide-mémoire — Structures de données#

essentiel

Comparatif#

Structure Ordonnée Mutable Doublons Indexable Syntaxe
list oui oui oui oui [1, 2, 3]
tuple oui non oui oui (1, 2, 3)
set non oui non non {1, 2, 3}
dict oui (insertion) oui clés uniques par clé {"a": 1}

list#

l = [3, 1, 2]
l.append(4)          # [3, 1, 2, 4]
l.insert(0, 9)        # [9, 3, 1, 2, 4]
l.remove(9)            # supprime la 1ère occurrence
l.pop()                 # retire et renvoie le dernier élément
l.pop(0)                # retire et renvoie l'élément d'index 0
l.sort()                 # tri en place
l.sort(reverse=True)
sorted(l)                # renvoie une nouvelle liste triée
l.reverse()
l[1:3]                    # slicing
l[::-1]                   # inversée (copie)
len(l)

tuple#

t = (1, 2, 3)
t = 1, 2, 3        # parenthèses optionnelles
t = (1,)            # tuple à un élément : virgule obligatoire
a, b, c = t          # dépaquetage

set#

s = {1, 2, 3}
s.add(4)
s.discard(4)        # pas d'erreur si absent
s.remove(4)         # KeyError si absent
a | b               # union
a & b               # intersection
a - b               # différence
a ^ b               # différence symétrique
a <= b              # sous-ensemble

dict#

d = {"a": 1, "b": 2}
d["c"] = 3
d.get("z", 0)          # 0 si absent (pas de KeyError)
d.setdefault("d", 0)    # ajoute si absent, renvoie la valeur
d.pop("a")               # retire et renvoie la valeur
d.update({"b": 20})       # fusion / écrase
d.keys(); d.values(); d.items()
for cle, valeur in d.items():
    ...

Compréhensions#

[x**2 for x in range(5)]                 # liste
{x: x**2 for x in range(5)}               # dict
{x for x in range(5) if x % 2 == 0}        # set
(x**2 for x in range(5))                    # générateur (paresseux)

Détail : Compréhensions.