Python | Suma de corte de lista personalizada

El problema de dividir una lista se ha tratado anteriormente, pero a veces necesitamos realizar el corte en longitudes variables y su suma de acuerdo con la entrada dada en otra lista. Este problema tiene su aplicación potencial en el desarrollo web. Vamos a discutir ciertas formas en que esto se puede hacer.

Método n.º 1: usar itertools.islice() + sum()+ comprensión de
lista La comprensión de lista se puede usar para iterar a través de la lista y el problema del componente se resuelve con la función islice. La suma se realiza mediante sum().

# Python3 code to demonstrate
# Custom List slicing Sum
# using itertools.islice() + sum() + list comprehension
from itertools import islice
  
# initializing test list
test_list = [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
  
# initializing slice list 
slice_list = [2, 1, 3, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# printing slice list 
print("The slice list : " + str(slice_list))
  
# using itertools.islice() + sum() + list comprehension
# Custom List slicing Sum
temp = iter(test_list)
res = [sum(list(islice(temp, part))) for part in slice_list]
  
# print result
print("The variable sliced sum list is : " + str(res))
Producción :

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced sum list is : [6, 3, 25, 48]

Método n.º 2: Uso de la segmentación de zip() + accumulate() + sum()lista +
Además de utilizar la comprensión de lista para realizar la tarea de enlace, este método utiliza la función zip para mantener unido el elemento de la sublista, la función de acumulación une los elementos y la segmentación se utiliza para construir la segmentación requerida. La suma se realiza mediante sum().

# Python3 code to demonstrate
# Custom List slicing Sum
# using zip() + accumulate() + sum() + list slicing
from itertools import accumulate
  
# initializing test list
test_list = [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
  
# initializing slice list 
slice_list = [2, 1, 3, 4]
  
# printing original list 
print("The original list : " + str(test_list))
  
# printing slice list 
print("The slice list : " + str(slice_list))
  
# using zip() + accumulate() + sum() + list slicing
# Custom List slicing Sum
res = [sum(test_list[i - j: i]) for i, j in zip(accumulate(slice_list), slice_list)]
  
# print result
print("The variable sliced sum list is : " + str(res))
Producción :

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced sum list is : [6, 3, 25, 48]

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 *