python | Producto de array de intersección de lista anidada

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))
Producción :

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))
Producción :

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

Deja una respuesta

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