Exemples de comment supprimer un ou des éléments d'une liste avec python:
Supprimer un élément d'une liste avec del()
Pour supprimer un élément d'une liste en fonction de l'indice (position) on peut utiliser la fonction del:
>>> L1 = ['a','b','c','d','e','f']
>>> del L1[3]
>>> L1
['a', 'b', 'c', 'e', 'f']
Supprimer le dernier élément de la liste:
>>> del L1[-1]
>>> L1
['a', 'b', 'c', 'e']
Supprimer le premier élément de la liste:
>>> L1 = ['a','b','c','d','e','f']
>>> del L1[0]
>>> L1
['b', 'c', 'd', 'e', 'f']
Supprimer plusieurs éléments:
>>> L1
['a', 'b', 'c', 'e']
>>> del L1[1:3]
>>> L1
['a', 'e']
Essayer de supprimer un élément dont l'indice n'est pas dans la liste donne le message d'erreur suivant:
>>> del L1[7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
Supprimer un élément pour une valeur donnée:
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> while 'a' in l:
... del l[l.index('a')]
...
>>> l
['b', 'c', 'd']
Supprimer un élément d'une liste avec remove()
Pour supprimer un élément en fonction de la valeur il existe aussi la fonction remove (attention ne supprime que la premiere occurrence !):
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> l.remove('a')
>>> l
['b', 'c', 'd', 'a']
Supprimer un élément d'une liste avec une boucle for
On peut aussi filtrer les éléments d'une liste avec une simple boucle for:
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> l = [i for i in l if i != 'a']
>>> l
['b', 'c', 'd']
Pour supprimer tous les éléments:
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> while 'a' in l:
... l.remove('a')
...
>>> l
['b', 'c', 'd']
Supprimer tous les éléments d'une liste
Exemples de comment supprimer tous les éléments:
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> del l[:]
>>> l
[]
avec clear()
>>> l = ['a', 'b', 'c', 'd', 'a']
>>> l.clear()
>>> l
[]
Références
Liens | Site |
---|---|
del | Python doc |
How to remove an element from a list by index in Python? | stackoverflow |
Is there a simple way to delete a list element by value in python? | stackoverflow |