Comment effectuer une soustraction de liste en Python
-
Convertir la liste en
set
pour effectuer une soustraction de liste en Python - Utiliser la compréhension de liste pour obtenir la différence de liste en Python
Ce tutoriel montre comment effectuer la soustraction de liste, ou en d’autres termes, la liste moins la liste en Python.
Comme défini par la théorie des ensembles en mathématiques, la différence entre deux ensembles fait référence aux éléments d’un ensemble qui n’existent pas dans l’autre ensemble.
Par exemple, si nous déclarons ces deux listes :
list1 = [1, 2, 4]
list2 = [2, 3]
La différence entre list1 - list2
serait [1, 4]
, tandis que list2 - list1
serait [3]
.
Convertir la liste en set
pour effectuer une soustraction de liste en Python
Les opérations de la théorie des ensembles sont supportées en Python. Cependant, seul le type de données set
supporte ces opérations. Par conséquent, pour utiliser l’opération set
, les listes doivent être converties en sets. Ceci est possible en enroulant une liste autour de la fonction set()
.
Remarque: La conversion d’une liste en un ensemble supprime tout type d’ordre et élimine les valeurs en double de la liste.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
print("A - B = ", setA - setB)
Production :
A - B = {1, 4, 9, 14}
Le résultat produit la différence entre les deux ensembles et supprime les valeurs en double.
Nous pouvons utiliser la fonction list()
pour convertir le résultat d’un set
en une liste.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
list_diff = list(setA - setB)
print("A - B: ", list_diff)
Production :
A - B: [1, 4, 9, 14]
Utiliser la compréhension de liste pour obtenir la différence de liste en Python
La compréhension de liste peut être utilisée pour vérifier si un élément n’existe que dans la première liste mais n’existe pas dans la seconde. Cette solution permet d’effectuer l’opération de différence sans convertir la liste en un ensemble.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
listSub = [elem for elem in listA if elem not in listB]
print("A - B =", listSub)
Production :
A - B = [1, 4, 9, 14, 14]
Cette solution ne perturbe pas l’ordre de la liste et supprime les doublons.
Cependant, la valeur 11
est répétée deux fois dans la listA
, et les deux itérations de 11
sont supprimées du résultat de A - B
puisque 11
existe dans les deux ensembles. Ce comportement est conforme aux attentes.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArticle connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python