我想在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
答案 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