Python | Intersección de dos listas – Part 1

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *