A veces, al trabajar con registros, podemos tener un problema en el que necesitamos sumar todas las columnas de un contenedor de listas que son tuplas. Este tipo de aplicación es común en el dominio del desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar sum() + comprensión de lista + zip()
Esta tarea se puede realizar usando una combinación de las funciones anteriores. En esto, acumulamos los elementos de índice similares, es decir, columnas usando zip(), y luego iteramos a través de ellos usando comprensión de listas y realizamos sumas usando sum().
Python3
# Python3 code to demonstrate working of # Cumulative Columns summation of Records # using list comprehension + sum() + zip() # initialize list test_list = [(1, 2, 3), (6, 7, 6), (1, 6, 8)] # printing original list print("The original list : " + str(test_list)) # Cumulative Columns summation of Records # using list comprehension + sum() + zip() res = [sum(ele) for ele in zip(*test_list)] # printing result print("The Cumulative column sum is : " + str(res))
The original list : [(1, 2, 3), (6, 7, 6), (1, 6, 8)] The Cumulative column sum is : [8, 15, 17]
Método #2: Usando zip() + map() + sum()
Este método es similar al método anterior. En esto, la tarea realizada por la comprensión de listas la realiza map(), que extiende la suma de columnas a elementos comprimidos.
Python3
# Python3 code to demonstrate working of # Cumulative Columns summation of Records # using zip() + map() + sum() # initialize list test_list = [(1, 2, 3), (6, 7, 6), (1, 6, 8)] # printing original list print("The original list : " + str(test_list)) # Cumulative Columns summation of Records # using zip() + map() + sum() res = list(map(sum, zip(*test_list))) # printing result print("The Cumulative column sum is : " + str(res))
The original list : [(1, 2, 3), (6, 7, 6), (1, 6, 8)] The Cumulative column sum is : [8, 15, 17]
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