导入列表的平均值 (python)

Average of imported list (python)

我正在尝试获取具有以下格式的列表的平均值: [["195", "106", "100", "95"]].

现在 sum(list1) 不起作用(用于 sum(list1)/len(list1)(而 len(list1) 可以正常工作):

TypeError: unsupported operand type(s) for +: 'int' and 'list'

如果列表是这样的 [195,106,100,95] 就可以了。如果我使用 numpy.mean(list1),同样会出错。有什么我可以添加的,所以这会起作用吗?或者我可以快速转换列表格式的方法?

这个错误是因为元素是字符串 如果你想获得平均值,请使用此代码

from __future__ import division #for the exact division
x = ["195", "106", "100", "95"]
x_int = [int(y) for y in x]
print sum(x_int) / len(x_int)

如果您有矩阵,则需要对 嵌套 列表的元素求和。您还需要将它们转换为整数:

total = sum(int(i) for sublist in outerlist for i in sublist)
length = sum(len(sublist) for sublist in outerlist)
average = total / length

这假设您想要所有嵌套列表中所有数字的平均值,因此长度需要反映嵌套列表的长度,而不是外部列表。

演示使用 Python 3:

>>> outerlist = [["195", "106", "100", "95"]]
>>> total = sum(int(i) for sublist in outerlist for i in sublist)
>>> length = sum(len(sublist) for sublist in outerlist)
>>> total / length
124.0