logo

Python | Intersection de deux listes

L'intersection de deux listes signifie que nous devons prendre tous les éléments communs aux deux listes initiales et les stocker dans une autre liste. Il existe désormais différentes manières en Python de réaliser l’intersection des listes.
Exemples:

Input : lst1 = [15, 9, 10, 56, 23, 78, 5, 4, 9] lst2 = [9, 4, 5, 36, 47, 26, 10, 45, 87] Output : [9, 10, 4, 5] Input : lst1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] lst2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] Output : [9, 11, 26, 28]>

Méthode 1 :
Il s’agit de la méthode la plus simple dans laquelle nous n’avons utilisé aucune fonction intégrée.



Python3




arbre binaire Java



# Python program to illustrate the intersection> # of two lists in most simple way> def> intersection(lst1, lst2):> >lst3>=> [value>for> value>in> lst1>if> value>in> lst2]> >return> lst3> # Driver Code> lst1>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>54>,>69>]> lst2>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>,>28>,>26>]> print>(intersection(lst1, lst2))>



>

>

Sortir:

[9, 11, 26, 28]>

Méthode 2 :
Cette méthode inclut l'utilisation de méthode set() .

Python3




# Python program to illustrate the intersection> # of two lists using set() method> def> intersection(lst1, lst2):> >return> list>(>set>(lst1) &>set>(lst2))> # Driver Code> lst1>=> [>15>,>9>,>10>,>56>,>23>,>78>,>5>,>4>,>9>]> lst2>=> [>9>,>4>,>5>,>36>,>47>,>26>,>10>,>45>,>87>]> print>(intersection(lst1, lst2))>

>

>

Sortir:

[9, 10, 4, 5]>

La complexité temporelle du programme ci-dessus est O(n), où n est la longueur de la liste la plus longue entre lst1 et lst2.

La complexité spatiale du programme est O(n), où n est la longueur de la plus petite liste entre lst1 et lst2.

Méthode 3 :
Dans cette méthode nous set() la plus grande liste puis utilisez la fonction intégrée appelée intersection() pour calculer la liste recoupée. intersection() est un élément de premier ordre de l'ensemble.

Python3




# Python program to illustrate the intersection> # of two lists using set() and intersection()> def> Intersection(lst1, lst2):> >return> set>(lst1).intersection(lst2)> > # Driver Code> lst1>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>28>,>26>,>66>,>91>]> lst2>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>]> print>(Intersection(lst1, lst2))>

>

>

Sortir:

{9, 11}>

Méthode 4 :
Grâce à l'utilisation de ceci méthode hybride la complexité du programme tombe à O(n). C’est une manière efficace d’exécuter le programme suivant.

Python3




# Python program to illustrate the intersection> # of two lists> def> intersection(lst1, lst2):> ># Use of hybrid method> >temp>=> set>(lst2)> >lst3>=> [value>for> value>in> lst1>if> value>in> temp]> >return> lst3> # Driver Code> lst1>=> [>9>,>9>,>74>,>21>,>45>,>11>,>63>]> lst2>=> [>4>,>9>,>1>,>17>,>11>,>26>,>28>,>28>,>26>,>66>,>91>]> print>(intersection(lst1, lst2))>

>

>

Sortir:

[9, 9, 11]>

Méthode 5 :
C'est ici que l'intersection est effectuée sur des sous-listes à l'intérieur d'autres listes. Nous avons utilisé ici la notion de filtre().

Python3




# Python program to illustrate the intersection> # of two lists, sublists and use of filter()> def> intersection(lst1, lst2):> >lst3>=> [>list>(>filter>(>lambda> x: x>in> lst1, sublist))>for> sublist>in> lst2]> >return> lst3> # Driver Code> lst1>=> [>1>,>6>,>7>,>10>,>13>,>28>,>32>,>41>,>58>,>63>]> lst2>=> [[>13>,>17>,>18>,>21>,>32>], [>7>,>11>,>13>,>14>,>28>], [>1>,>5>,>6>,>8>,>15>,>16>]]> print>(intersection(lst1, lst2))>

>

>

Fonctionnement: La partie filtre prend l’élément de chaque sous-liste et vérifie s’il se trouve dans la liste source. La compréhension de liste est exécutée pour chaque sous-liste de list2.
Sortir:

[[13, 32], [7, 13, 28], [1, 6]]>

Méthode 6 : Utilisation de réduire() :
Algorithme:

  1. Importez la fonction de réduction du module functools.
  2. Définissez deux listes.
  3. Initialisez l'intersection des variables avec une liste vide.
  4. Utilisez la fonction de réduction pour parcourir les éléments de lst1.
  5. Dans la fonction lambda, vérifiez si l'élément actuel est présent dans lst2 et n'est pas déjà présent dans la liste d'intersection.
  6. Si tel est le cas, ajoutez l’élément actuel à la liste d’intersections.
  7. Renvoie la liste des intersections.
  8. Imprimez la liste des intersections.

Python3




from> functools>import> reduce> lst1>=> [>15>,>9>,>10>,>56>,>23>,>78>,>5>,>4>,>9>]> lst2>=> [>9>,>4>,>5>,>36>,>47>,>26>,>10>,>45>,>87>]> intersection>=> reduce>(>lambda> acc, x: acc>+> [x]>if> x>in> lst2>and> x>not> in> acc>else> acc, lst1, [])> print>(intersection)> #This code is contributed by Rayudu.>

>

>

Sortir

[9, 10, 5, 4]>

Complexité temporelle : O(n^2), où n est la longueur de lst1.
Complexité spatiale : O(n), où n est la longueur de lst1.