通过仅添加单行并查找该单行的平均值来平均2d列表

时间:2013-06-05 14:34:50

标签: python list

我想在Python中找到二维列表的平均值。

这是我的清单的一个例子:

list = [[x, y, 1], [x, y, 1], [x, y, 2]]

我想添加第三行并仅查找该行的平均值。

这是我的代码:

def averageList(list):
    averagefile = []
    sum = 0
    for count in range(0, len(list)):
        try:
            sum = sum + float(list[count][2])
        except ValueError:
            print ''
    average = sum / len(list[count])
    averagefile.append(average)
    print averagefile

    #return averageList

2 个答案:

答案 0 :(得分:4)

>>> L = [['x','y',1], ['x','y',1], ['x','y',2]]
>>> sum(entry[-1] for entry in L) / float(len(L))
1.3333333333333333

这与:

相同
>>> sum(entry[2] for entry in L) / float(len(L))

因为最后一个位置是索引2

答案 1 :(得分:0)

以下是使用地图的替代方案:

>>> li=[['x','y',1], ['x','y',1], ['x','y',2]]
>>> sum(map(lambda sl: sl[2],li))/float(len(li))
1.3333333333333333

您也可以使用zip:

>>> sum(zip(*li)[2])/float(len(li)
1.3333333333333333