Python | Trozos consecutivos Producto

Algunos de los problemas clásicos en el dominio de la programación provienen de diferentes categorías y uno de ellos es encontrar el producto de subconjuntos. Este problema particular también es común cuando necesitamos calcular el producto y almacenar el valor del producto de grupo consecutivo. Probemos diferentes enfoques para este problema en lenguaje python.

Método n.º 1: usar comprensión de lista + bucle
La comprensión de lista se puede usar para realizar esta tarea en particular para filtrar grupos sucesivos y la función explícita del producto se puede usar para obtener el producto de la solución filtrada.

# Python3 code to demonstrate
# Consecutive chunks Product
# using list comprehension + loop
  
# getting Product
def prod(val) :
    res = 1 
    for ele in val:
        res *= ele
    return res 
  
# initializing list
test_list = [4, 7, 8, 10, 12, 15, 13, 17, 14]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using list comprehension + loop
# Consecutive chunks Product
res = [ prod(test_list[x : x + 3]) for x in range(0, len(test_list), 3)]
  
# printing result
print("The chunked product list is : " + str(res))
Producción :

The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14]
The chunked product list is : [224, 1800, 3094]

Método n.º 2: usar loop + itertools.islice()
La tarea de dividir la lista en fragmentos se realiza aquí con el método islice y la tarea convencional de obtener el producto se realiza mediante la función de producto explícita como el método anterior.

# Python3 code to demonstrate
# Consecutive chunks Product
# using itertools.islice() + loop
import itertools
  
# getting Product
def prod(val) :
    res = 1 
    for ele in val:
        res *= ele
    return res 
  
# initializing list
test_list = [4, 7, 8, 10, 12, 15, 13, 17, 14]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using itertools.islice() + loop
# Consecutive chunks Product
res = [prod(list(itertools.islice(test_list, i, i + 3))) for i in range(0, len(test_list), 3)]
  
# printing result
print("The chunked product list is : " + str(res))
Producción :

The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14]
The chunked product list is : [224, 1800, 3094]

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 *