Dadas dos listas de listas, escriba un programa Python para encontrar la intersección entre las dos listas dadas.
Ejemplos:
Input : lst1 = [['a', 'c'], ['d', 'e']] lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']] Output : [['a', 'c'], ['d', 'e']] Input : lst1 = [[1, 5, 7], [2, 3], [6, 9], [4, 8]] lst2 = [[9, 3], [2, 3], [6, 9]] Output : [[2, 3], [6, 9]]
Enfoque #1: Ingenuo (Lista de comprensión)
El enfoque de fuerza bruta o ingenuo para encontrar la intersección de la lista de listas es usar la comprensión de listas o simplemente un bucle for .
# Python3 program to find # Intersection of list of lists def intersection(lst1, lst2): return [item for item in lst1 if item in lst2] # Driver code lst1 = [['a', 'c'], ['d', 'e']] lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']] print(intersection(lst1, lst2))
[['a', 'c'], ['d', 'e']]
Enfoque n. ° 2: usar Establecer intersection()
Este es un método eficiente en comparación con el enfoque ingenuo. Primero convertimos ambas listas de listas en listas de tuplas usando map() porque los conjuntos de Python son compatibles con tuplas, no con listas. Luego, simplemente encontramos Establecer intersection() de ambas listas.
# Python3 program to find # Intersection of list of list def intersection(lst1, lst2): tup1 = map(tuple, lst1) tup2 = map(tuple, lst2) return list(map(list, set(tup1).intersection(tup2))) # Driver code lst1 = [['a', 'c'], ['d', 'e']] lst2 = [['a', 'c'], ['e', 'f'], ['d', 'e']] print(intersection(lst1, lst2))
[['d', 'e'], ['a', 'c']]
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA