Supprimer plusieurs éléments d'une liste en Python

Jay Prakash Gupta 30 janvier 2023
  1. Supprimer plusieurs éléments d’une liste à l’aide d’instructions de contrôle if...else
  2. Suppression de plusieurs éléments d’une liste à l’aide de la méthode de compréhension de liste en Python
  3. Supprimer plusieurs éléments d’une liste à l’aide du découpage de liste
  4. Supprimer plusieurs éléments d’une liste à l’aide de la boucle for
Supprimer plusieurs éléments d'une liste en Python

Pour supprimer plusieurs valeurs d’une liste Python, nous pouvons soit supprimer les valeurs réelles de la liste, soit les index des valeurs à supprimer de la liste. Nous pouvons utiliser des instructions de contrôle if...else, une compréhension de liste, un découpage de liste et des boucles for pour supprimer plusieurs éléments d’une liste en Python.

Supprimer plusieurs éléments d’une liste à l’aide d’instructions de contrôle if...else

Nous pouvons utiliser des instructions de contrôle if...else pour supprimer plusieurs valeurs d’une liste en Python si les valeurs satisfont à une certaine condition. Les éléments peuvent également être supprimés si leurs index satisfont à une certaine condition.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
print("Original list : ", list1)


for ele in list1:
    if (ele % 2) != 0:
        list1.remove(ele)

print("List after deleting all values which are odd : ", list1)

Production:

Original list :  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
List after removing all the odd values :  [2, 4, 6, 8, 10, 20]

Ici, nous avons une liste d’entiers et devons supprimer les éléments avec la valeur impaire de la liste. Dans ce cas, nous parcourons tous les éléments de la liste l1 et enlevons un élément de la liste en utilisant la méthode remove() si l’élément a une valeur impaire.

Suppression de plusieurs éléments d’une liste à l’aide de la méthode de compréhension de liste en Python

En Python, la compréhension de liste fait référence au processus de génération d’une nouvelle liste à partir d’une liste existante. La compréhension de liste peut également être utilisée pour supprimer plusieurs éléments de la liste. Nous pouvons créer une nouvelle liste en supprimant les valeurs à supprimer de la liste d’origine.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
l2 = [x for x in l1 if x % 2 == 0]

print("Original list : ", l1)
print("List after deleting all the odd values present in List : ", l2)

Production:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after deleting all the odd values present in List :  [2, 4, 6, 8, 10, 20, 80]

Ici, nous créons la liste l2 à partir de la liste l1, qui ne contient que toutes les valeurs paires dans le l1. En d’autres termes, on peut dire que l’on a créé une nouvelle liste l2 à partir de la liste existante l1 en supprimant toutes les valeurs impaires de la liste l1.

Supprimer plusieurs éléments d’une liste à l’aide du découpage de liste

Nous pouvons également supprimer plusieurs éléments d’une liste en utilisant la méthode de découpage de liste. Ici, nous pouvons mettre la plage de l’élément du début au dernier index de l’élément que nous voulons supprimer de la liste dans la méthode del.

Au lieu d’utiliser un seul index dans la méthode del, nous utilisons une plage de valeurs allant du début au dernier index des éléments que nous voulons supprimer de la liste. Cela supprimera les éléments contigus de la liste. Il faut noter que l’index des valeurs part de 0 en Python pour les listes.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

del l1[2:5]

print("List after removing values at index 2, 3 and 4 : ", l1)

Production:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 2, 3 and 4 :  [1, 2, 6, 7, 8, 9, 10, 20, 80, 99]

Il supprime les valeurs aux indices 2, 3 et 4 de la liste l1 en utilisant la méthode del.

Une chose importante à noter ici est que le premier index 2 est inclusif, c’est-à-dire que l’élément à l’index 2 dans la liste 3 est supprimé tandis que le dernier index est une valeur exclusive, ce qui signifie que l’élément à l’index 5 dans la liste 6 n’est pas supprimé.

Supprimer plusieurs éléments d’une liste à l’aide de la boucle for

On peut aussi utiliser les boucles for pour supprimer plusieurs éléments d’une liste.

Pour appliquer cette méthode, nous devons stocker les index des éléments que nous voulons supprimer de la liste. Mais la suppression aléatoire de l’élément entraînera la modification des valeurs des index. Notre stratégie intelligente sera de supprimer l’élément dont la position dans la liste est la plus élevée. Ainsi, la valeur de l’élément aux autres index ne changera pas. Maintenant, nous allons trier la liste par ordre décroissant pour supprimer d’abord l’élément à un index plus élevé. Le code de cette approche est présenté ci-dessous.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

indexes_to_be_removed = [0, 2, 5]

for idx in sorted(indexes_to_be_removed, reverse=True):
    del l1[idx]

print("List after removing values at index 0, 2 and 5: ", l1)

Production:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 0, 2 and 5:  [3, 5, 6, 8, 9, 10, 20, 80, 99]

Il supprime les valeurs aux indices 0, 2 et 5 de la liste l1 en utilisant la méthode del.

Article connexe - Python List