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
# 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 del método 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))
Producción:
[9, 10, 4, 5]
Método 3:
en este método establecemos() la lista más grande y luego usamos la función integrada llamada intersection() para calcular la lista intersecada. intersection() es una parte de primera clase de conjunto.
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:
Mediante el uso de este método híbrido, la complejidad del programa cae a O(n). Esta es una manera eficiente de hacer 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 sobre sublistas dentro de otras listas. Aquí hemos usado el concepto de filter().
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))
Funcionamiento: 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 la lista2.
Producción:
[[13, 32], [7, 13, 28], [1, 6]]
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA