Comment supprimer une élément d'une liste avec python ?

Active 21 août 2014    /    Viewed 152916    /    Comments 0    /    Edit


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


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!