📜  Python|元组列表中的列均值

📅  最后修改于: 2022-05-13 01:54:55.086000             🧑  作者: Mango

Python|元组列表中的列均值

有时,在处理记录时,我们可能会遇到一个问题,即我们需要对作为元组的列表容器的所有列进行平均。这种应用程序在 Web 开发领域很常见。让我们讨论可以执行此任务的某些方式。

方法 #1:使用 sum() + 列表理解 + zip()
可以使用上述功能的组合来执行此任务。在此,我们累积相似的索引元素,即使用 zip() 的列,然后使用列表推导遍历它们并使用 sum() 执行求和。我们将每个结果除以行数进行平均计算。

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


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


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

方法 #2:使用 zip() + map() + sum()
该方法与上述方法类似。在此,列表理解执行的任务由 map() 执行,它将列的总和扩展到压缩元素。我们将每个结果除以行数进行平均计算。

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))
输出
The original list : [(1, 2, 3), (6, 7, 6), (1, 6, 8)]
The Cumulative column mean is : [2.6666666666666665, 5.0, 5.666666666666667]