El problema de encontrar los elementos comunes en una lista de 2 listas es un problema bastante común y se puede tratar con facilidad y también se ha discutido antes muchas veces. Pero a veces, requerimos encontrar los elementos que son comunes de N listas y devolver su producto. Analicemos ciertas formas en que se puede realizar esta operación.
Método #1: Usarreduce() + lambda + set() + loop
Esta tarea en particular se puede lograr en solo una línea usando la combinación de las funciones anteriores. La función de reducción se puede usar para operar la función de operación «&» en toda la lista. La función set se puede usar para convertir una lista en un conjunto para eliminar la repetición. La tarea de realizar el producto se realiza mediante bucle.
# Python code to demonstrate # Nested List Intersection Matrix Product # using reduce() + lambda + set() + loop # getting Product def prod(val) : res = 1 for ele in val: res *= ele return res # initializing list of lists test_list = [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]] # printing original list print ("The original list is : " + str(test_list)) # Nested List Intersection Matrix Product # using reduce() + lambda + set() + loop res = prod(list(reduce(lambda i, j: i & j, (set(x) for x in test_list)))) # printing result print ("The common row elements product is : " + str(res))
The original list is : [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]] The common row elements product is : 6
Método n.° 2: Usarmap() + intersection() + loop
la función de mapa se puede usar para convertir cada una de las listas en un conjunto que se operará para realizar la intersección, usando la función set.intersection. Esta es la forma más elegante de realizar esta tarea en particular. La tarea de realizar el producto se realiza mediante bucle.
# Python3 code to demonstrate # Nested List Intersection Matrix Product # using map() + intersection() + loop # getting Product def prod(val) : res = 1 for ele in val: res *= ele return res # initializing list of lists test_list = [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]] # printing original list print ("The original list is : " + str(test_list)) # Common Row elements Summation # using map() + intersection() + loop res = prod(list(set.intersection(*map(set, test_list)))) # printing result print ("The common row elements product is : " + str(res))
The original list is : [[2, 3, 5, 8], [2, 6, 7, 3], [10, 9, 2, 3]] The common row elements product is : 6
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA