添加列表元素

时间:2015-11-01 00:10:16

标签: python string list dictionary int

我正在尝试添加列表的所有元素并找到它的平均值。

[[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]

我找到平均值的代码是:

avg = sum(lst)/len(lst)

错误:

  

TypeError:+:' int'不支持的操作数类型和'列出'

我认为这是因为它是一个列表列表,但我不想改变列表的输出,因为这个输出花了我近100行编码。 如何在不损坏代码的情况下添加所有这些元素? LNG - PYTHON

4 个答案:

答案 0 :(得分:2)

应为avg = sum(lst[0])/len(lst[0])

答案 1 :(得分:2)

尝试使用pop:

list = [[1,2,3,4,5]]

innerList = list.pop()

avg = sum( innerList ) / len ( innerList )

print avg

结果:

3

答案 2 :(得分:1)

你可以用numpy做到这一点。

In [1]: import numpy as np
In [2]: lst = [[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]
In [3]: np.mean(lst[0])
Out[3]: 6.5388888888888888

答案 3 :(得分:0)

首先,如果你想在python2.x和3.x中使分割具有相同的行为,我建议你导入division

>>> from __future__ import division

你猜的原因是嵌套列表,是的,这就是原因。所以,解决方案很简单,我们使用内部列表:

>>> lst = [[0.7,5,6,4,2,45,7,8,5,3,2,6,8,3,2,2,5,4]]
>>> average = sum(lst[0]) / len(lst[0])
>>> average 
6.538888888888889

如果您使用的是python 3.4或更高版本,则std lib具有电池:statistics.mean

>>> from statistics import mean
>>> mean(lst[0])
6.538888888888889