Python | Columna Media en la lista de tuplas

A veces, al trabajar con registros, podemos tener un problema en el que necesitamos promediar 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, las columnas usando zip(), y luego iteramos a través de ellas usando la comprensión de listas y realizamos la suma usando sum(). Dividimos cada resultado con No de filas para el cálculo promedio.

Python3

# Python3 code to demonstrate working of
# Column Mean in tuple list
# 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))
   
# Column Mean in tuple list
# using list comprehension + sum() + zip()
res = [sum(ele) / len(test_list) for ele in zip(*test_list)]
   
# printing result
print("The Cumulative column mean is : " + str(res))
Producción

The original list : [(1, 2, 3), (6, 7, 6), (1, 6, 8)]
The Cumulative column mean is : [2.6666666666666665, 5.0, 5.666666666666667]

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. Dividimos cada resultado con No de filas para el cálculo promedio.

Python3

# Python3 code to demonstrate working of
# Column Mean in tuple list
# using zip() + map() + sum()
   
def avg(list):
    return sum(list)/len(list)
       
# initialize list
test_list = [(1, 2, 3), (6, 7, 6), (1, 6, 8)]
   
# printing original list
print("The original list : " + str(test_list))
   
# Column Mean in tuple list
# using zip() + map() + sum()
res = list(map(avg, zip(*test_list)))
   
# printing result
print("The Cumulative column mean is : " + str(res))
Producción

The original list : [(1, 2, 3), (6, 7, 6), (1, 6, 8)]
The Cumulative column mean is : [2.6666666666666665, 5.0, 5.666666666666667]

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 *