Intersection des listes en Python
-
Obtenir une intersection de liste en Python avec l’opérateur
&
-
Obtenir l’intersection des listes en Python avec la méthode
intersection()
Dans ce tutoriel, nous allons discuter de plusieurs méthodes pour obtenir l’intersection entre deux listes en Python.
Intersection (ou AND) est à la base une opération spécifiquement conçue pour sets
. Elle fonctionne en sélectionnant les éléments communs à deux ensembles. Par exemple,
setA = {1, 2, 3, 4, 5}
setB = {0, 2, 4, 6}
print(setA & setB)
Production :
{2, 4}
Dans l’exemple ci-dessus, setA
et setB
sont deux ensembles, et l’opérateur &
effectue une opération d’intersection sur les ensembles.
Par défaut, Python ne supporte pas l’intersection directe sur les listes. Mais avec un petit ajustement, nous pouvons aussi effectuer des intersections sur des listes.
Obtenir une intersection de liste en Python avec l’opérateur &
L’opérateur &
, tel que mentionné ci-dessus, ne peut pas être utilisé avec des listes. Nous devons donc transformer nos listes en ensembles en utilisant la méthode set()
.
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set1 & set2
list3 = list(set3)
print(list3)
Production :
[2, 4]
La fonction set()
convertit une liste en un ensemble. L’opération &
renvoie un ensemble qui contient tous les éléments communs aux deux ensembles. Comme nous le savons, nous devons effectuer cette opération sur des listes plutôt que sur des ensembles. Nous devons donc convertir cet ensemble en une liste en utilisant la fonction list()
.
Obtenir l’intersection des listes en Python avec la méthode intersection()
La intersection()
méthode de la classe set
est une autre façon d’effectuer des intersections sur des ensembles en Python. Comme l’opérateur &
, elle est également limitée aux seuls ensembles. Mais en convertissant la list1
en un ensemble, nous pouvons aussi utiliser intersection()
avec la list1
.
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set(list1).intersection(list2)
list3 = list(set3)
print(list3)
Production :
[2, 4]
La méthode intersection()
renvoie également un ensemble de tous les éléments communs. Nous devons donc le convertir en une liste en utilisant la fonction list()
.
Obtenir l’intersection de la liste en Python avec les compréhensions de la liste
Les deux méthodes évoquées ci-dessus sont conçues pour fonctionner avec des ensembles plutôt qu’avec des listes. Comme nous savons tous qu’un ensemble ne peut pas avoir de valeurs récurrentes et que ses éléments ne sont pas triés, ces fonctions ne fonctionnent pas bien si nous avons des valeurs récurrentes dans nos listes ou si nous voulons conserver l’ordre dans nos listes.
Les inconvénients des deux méthodes précédentes sont démontrés dans cet exemple de codage.
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
setintersection = list(set(list1) & set(list2))
intersectionmethod = list(set(list1).intersection(list2))
print("The result of set intersection :")
print(setintersection)
print("The result of intersection() method :")
print(intersectionmethod)
Production :
The result of set intersection :
[2, 4]
The result of intersection() method :
[2, 4]
Comme indiqué ci-dessus, nous nous attendons à ce que [2, 2, 4]
soit le bon résultat, mais nous n’obtenons que [2, 4]
.
La compréhension de liste est une autre façon d’effectuer l’opération AND
sur les listes en Python. Elle peut gérer des valeurs récurrentes et aussi conserver l’ordre des éléments, qui n’est pas conservé dans les deux méthodes ci-dessus.
# Solution 2 Using list comprehensions
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
list3 = [x for x in list1 if x in list2]
# all the x values that are in A, if the X value is in B
print(list3)
Production :
[2, 2, 4]
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
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