Python | Suma de subconjunto seccional en la lista

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

Método #1: Uso de la comprensión de listas +sum()
La comprensión de listas se puede usar para realizar esta tarea en particular para filtrar grupos sucesivos y la función de suma se puede usar para obtener la suma de la solución filtrada.

# Python3 code to demonstrate
# Sectional subset sum in list 
# using list comprehension + sum()
  
# 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 + sum()
# Sectional subset sum in list 
res = [ sum(test_list[x : x + 3]) 
       for x in range(0, len(test_list), 3)]
  
# printing result
print("The grouped summation list is : " + str(res))
Producción :

The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14]
The grouped summation list is : [19, 37, 44]

Método n.º 2: usosum() + itertools.islice()
La tarea de dividir la lista en partes se realiza aquí mediante el método islice y la tarea convencional de obtener la suma se realiza mediante la función sum como el método anterior.

# Python3 code to demonstrate
# Sectional subset sum in list 
# using itertools.islice() + sum()
import itertools
  
# 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() + sum()
# Sectional subset sum in list 
res = [sum(list(itertools.islice(test_list, i, i + 3)))
                  for i in range(0, len(test_list), 3)]
  
# printing result
print("The grouped summation list is : " + str(res))
Producción :

The original list : [4, 7, 8, 10, 12, 15, 13, 17, 14]
The grouped summation list is : [19, 37, 44]

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 *