将操作元素明智地应用于嵌套列表中的所有列表

时间:2018-11-15 16:57:45

标签: python python-2.7 list nested-lists

我已经嵌套了,例如:

[[1.0, 2.0, 3.0],  
 [3.0, 3.0, 3.0]]

我需要什么:

[2.0, 2.5, 3.0]  

因此,结果列表的每个元素都是按列嵌套的列表的各种列表。

在python 2.7中最有效的方法是什么。我想该解决方案将使用map进行收费,但我看不到将其应用于此任务的正确方法。

5 个答案:

答案 0 :(得分:2)

您可以使用库numpy进行非常有效的计算。

import numpy as np

a = np.array([[1,2,3], [3,3,3]])
np.mean(a, axis=0)

答案 1 :(得分:1)

您可以使用zipmap。使用zip来转置矩阵,然后在sum的帮助下map将每一列均值化为平均值。

values = [[1, 2, 3], [3, 3, 3]]
averages = map(lambda x: sum(x)/float(len(x)), zip(*values))

print averages

输出:

[2.0, 2.5, 3.0]

答案 2 :(得分:1)

使用zip和列表理解:

lists = [[1.0, 2.0, 3.0], [3.0, 3.0, 3.0]]
averages = [sum(l)/len(l) for l in zip(*lists)]

答案 3 :(得分:1)

您可以zip列表列表,然后mapstatistics.mean

from statistics import mean
list(map(mean, zip(*lst)))

这将返回:

[2, 2.5, 3]

答案 4 :(得分:0)

list(map(lambda x,y: (x+y)/2.0, [1, 2, 3], [3, 3, 3]))

输出:

[2.0, 2.5, 3.0]

编辑:

在python 2.7.15上测试