Explication de la leçon
Après cette leçon, tu seras capable de :
append() ou plusieurs éléments avec extend().remove().pop(), en utilisant sa valeur par défaut ou un indice spécifié.Les listes sont modifiables, tu peux donc modifier leur longueur sans les reconstruire. La distinction la plus utile est un élément vs plusieurs éléments : append(value) ajoute un seul objet, tandis que extend(iterable) ajoute chaque valeur issue d'un itérable.
Utilise insert(index, value) lorsque le nouvel élément doit être placé avant une position existante. Cela diffère de items[index] = value, qui remplace l'élément présent.
Pour la suppression, remove(value) recherche une valeur correspondante et supprime sa première occurrence ; cela lève ValueError quand la valeur est absente. pop() supprime et renvoie le dernier élément ; pop(index) supprime et renvoie une position spécifique et lève IndexError si cette position n'est pas valide. Les deux opérations modifient la liste d'origine en place.
Tu peux utiliser ces opérations dans des boucles et des conditions pour gérer une file d'attente, une checklist ou une collection de noms de tâches. Évite d'enchaîner une méthode de modification directe dans une instruction de retour : des méthodes comme append(), extend(), insert() et remove() renvoient None.
append() ajoute un élément unique. extend() extrait les éléments d'un autre itérable un à un.
services = ["api"]
services.append("worker")
services.extend(["database", "cache"])
print(services)Sortie :
['api', 'worker', 'database', 'cache']Ajouter la liste entière avec append produirait à la place un élément de liste imbriqué.
insert(index, value) décale les éléments existants vers la droite.
stages = ["build", "deploy"]
stages.insert(1, "test")
print(stages)Sortie :
['build', 'test', 'deploy']L'ancien deuxième élément est toujours présent.
Quand une valeur apparaît deux fois, remove() ne supprime que la première copie.
flags = ["ready", "retry", "ready"]
flags.remove("ready")
print(flags)Sortie :
['retry', 'ready']Une valeur absente déclencherait ValueError.
Sans indice, pop() supprime le dernier élément ; avec un indice, il supprime cette position précise.
workers = ["api", "queue", "mailer"]
last_worker = workers.pop()
first_worker = workers.pop(0)
print(last_worker)
print(first_worker)
print(workers)Sortie :
mailer
api
['queue']Les deux appels modifient la liste d'origine tout en renvoyant la valeur supprimée.
| Besoin | Méthode |
|---|---|
| Ajouter un élément à la fin | items.append(value) |
| Ajouter chaque élément d'un autre itérable | items.extend(values) |
| Insérer avant un indice | items.insert(index, value) |
| Supprimer la première valeur égale | items.remove(value) |
| Supprimer le dernier et le renvoyer | items.pop() |
| Supprimer l'indice et le renvoyer | items.pop(index) |
items[index] = value remplace au lieu de décaler.pop() : pop() attend un indice, pas la valeur à rechercher.remove() supprime tous les doublons : il supprime uniquement la première valeur correspondante.