En este tutorial, discutiremos cómo podemos obtener la intersección de las dos listas. La intersección de dos listas significa que necesitamos llevar todos los elementos familiares a ambas listas iniciales.
Pitón es conocido por su excelente estructura de datos incorporada. La lista de Python es uno de los tipos de datos integrados famosos y valiosos de Python. Puede almacenar el valor de los distintos tipos de datos en orden. Sin embargo, no existe una función integrada para listas como conjuntos.
comparar en cadena
Python proporciona muchas formas de realizar la intersección de listas. Veamos el siguiente escenario.
Aporte :
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Producción:
[90, 11, 58, 31, 66, 28, 54]
Aporte :
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Producción:
[9, 11, 26, 28]
Veamos los siguientes métodos para obtener la intersección de dos listas.
Método - 1: Usar el bucle for
# Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Producción:
[90, 11, 58, 31, 66, 28, 54]
Hemos utilizado el bucle for para obtener el valor común de ambas listas y lo almacenamos en la variable list3.
Método - 2: Convertir lista en conjunto
def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Producción:
[66, 90, 11, 54, 58, 28, 31]
Método - 3:
Usaremos los conjuntos incorporados. intersección() método. El intersección() es una pieza de primera clase del conjunto. Entendamos el siguiente ejemplo.
Ejemplo -
git pago
# Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Producción:
{66, 90, 11, 54, 58, 28, 31}
Método - 4:
En este método, utilizaremos el método híbrido. Esta es una forma mucho más eficiente de realizar la tarea. Entendamos el siguiente ejemplo.
Ejemplo -
# Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2))
Producción:
[90, 11, 58, 31, 66, 28, 54]
Método - 5:
En este método usaremos el filtrar() método. La intersección se realiza sobre sublistas dentro de otras listas. Entendamos el siguiente ejemplo.
Ejemplo -
# Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2))
Producción:
[[17, 23, 40], [10], [60]]
El filtrar() El método toma cada elemento de la sublista y verifica si está presente en la lista1. La comprensión de la lista se ejecuta para cada sublista de la lista2.