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))
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))
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