0

我想在 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
4

2 回答 2

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

因为最后一个位置是 index 2

于 2013-06-05T14:42:04.417 回答
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
于 2013-06-05T14:48:51.767 回答