logo

Pitón | Intersección de dos listas

La intersección de dos listas significa que debemos tomar todos los elementos que son comunes a ambas listas iniciales y almacenarlos en otra lista. Ahora hay varias formas en Python a través de las cuales podemos realizar la intersección de las listas.
Ejemplos:

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étodo 1:
Este es el método más simple en el que no hemos utilizado ninguna función integrada.



Python3




método java anulando



# 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))>



>

>

Producción:

[9, 11, 26, 28]>

Método 2:
Este método incluye el uso de método establecer () .

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))>

>

>

Producción:

[9, 10, 4, 5]>

La complejidad temporal del programa anterior es O(n), donde n es la longitud de la lista más larga entre lst1 y lst2.

La complejidad espacial del programa es O(n), donde n es la longitud de la lista más pequeña entre lst1 y lst2.

Método 3:
En este método nosotros set() la lista más grande y luego usar la función incorporada llamada intersección() para calcular la lista intersectada. intersección() es una pieza de primera clase del set.

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))>

>

>

Producción:

{9, 11}>

Método 4:
Por el uso de este método híbrido la complejidad del programa cae a O(n). Esta es una forma eficiente de realizar el siguiente programa.

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))>

>

>

Producción:

[9, 9, 11]>

Método 5:
Aquí es donde se realiza la intersección de sublistas dentro de otras listas. Aquí hemos utilizado el concepto de filtrar().

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))>

>

>

Laboral: La parte del filtro toma el elemento de cada sublista y verifica si está en la lista de origen. La comprensión de la lista se ejecuta para cada sublista en list2.
Producción:

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

Método 6: usar reducir():
Algoritmo:

  1. Importe la función de reducción del módulo functools.
  2. Defina dos listas.
  3. Inicialice la intersección de variables con una lista vacía.
  4. Utilice la función de reducción para iterar sobre los elementos de lst1.
  5. Dentro de la función lambda, verifique si el elemento actual está presente en lst2 y no está presente en la lista de intersecciones.
  6. Si es así, agregue el elemento actual a la lista de intersecciones.
  7. Devuelve la lista de intersecciones.
  8. Imprima la lista de intersecciones.

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.>

>

>

Producción

[9, 10, 5, 4]>

Complejidad del tiempo: O (n ^ 2), donde n es la longitud de lst1.
Complejidad espacial: O (n), donde n es la longitud de lst1.