Opérations de mutation de listes

Dans le tableau suivant, s est une séquence mutable (une liste, a priori), et x est un objet qu’on écrit, ajoute, supprime ou recherche dans s. On note t un objet “itérable” dont les éléments sont écrits dans s ou ajoutés à la fin de s.

Opérations communes aux séquences mutables, donc applicables aux listes
s[i] = x remplace s[i] par x del s[i] supprime l’élément s[i]
s[i:j] = t remplace s[i], . . . , s[j −1] par les élts de t s[i:j:k] = t idem mais avec le pas k
del s[i:j] supprime s[i], s[i + 1], …, s[j −1] del s[i:j:k] idem mais avec le pas k
s.append(x) ajoute un élément x à s s.clear() efface tous les éléments de s
s.copy() copie indépendante de s (idem s[:]) s.extend(t) ajoute les élts de l’itérable t à s
s.insert(i,x) insère x en position i dans s s.pop(i) supprime et renvoie le ième élt de s
s.remove(x) supprime la 1ère occurence de x dans s s.reverse() inverse l’ordre des éléments de s

Attention : la plupart des instructions précédentes renvoient la valeur None mais mutent la liste (sans changer son adresse). Prenons quelques exemples, en plaçant une même liste dans s et t, et en faisant une copie “fraîche” de cette liste dans u. Les modifications sur s se répercutent dans t mais pas dans u :

À la suite des instructions précédentes, on voit comment utiliser des coupes (slices) de la liste s :

Terminons cette série d’exemples par quelques manipulations supplémentaires sur la liste s :

Pour trier “sur place” la liste contenue dans une variable s, on écrit s.sort(), et pour obtenir une copie triée de cette liste, mais sans affecter l’original, on évalue l’expression sorted(s). Dans tous les cas, il y a deux arguments facultatifs : key=fonction (défaut key=None) pour préciser une clef de tri, et reverse=True/False (défaut reverse=False) pour inverser l’ordre du tri.

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 5

  1. Propriétés communes aux séquences (hors “mutations”)
  2. Séquences mutables ou non
  3. Listes définies “en compréhension”
  4. Opérations de mutation de listes
  5. Les tuples
  6. Les chaînes de caractères
  7. Méthodes importantes sur les chaînes (split, join, format)
  8. Objets de type bytes et bytearray