Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 查找列表的平均值_Python 2.7 - Fatal编程技术网

Python 2.7 查找列表的平均值

Python 2.7 查找列表的平均值,python-2.7,Python 2.7,我试图在Python2.7上计算一个“奇怪的”列表平均值。 名单如下: list = ['', '0.00066', '0.00066', '0.00066', '0.00066'] 我用于首先获取sum的命令:reducelambda x,y:x+y,list 但是我得到了一个错误的返回:列表的总和是:0.000660.000660.000660.00066 请建议如何获得列表的平均值。您需要将字符串转换为浮动,因为空字符串将引发错误。幸运的是,你可以在转换之前过滤掉空白。 >>

我试图在Python2.7上计算一个“奇怪的”列表平均值。 名单如下:

list = ['', '0.00066', '0.00066', '0.00066', '0.00066']
我用于首先获取sum的命令:reducelambda x,y:x+y,list 但是我得到了一个错误的返回:列表的总和是:0.000660.000660.000660.00066


请建议如何获得列表的平均值。

您需要将字符串转换为浮动,因为空字符串将引发错误。幸运的是,你可以在转换之前过滤掉空白。
>>> list = ['', '0.00066', '0.00066', '0.00066', '0.00066']
>>> reduce(lambda x, y: x + y, (float(i) for i in list if i))
0.00264
另一方面,python有一些函数版本的操作符,您可以在这样的情况下使用它们。当然,sum已经是专门为相加而设计的

>>> import operator
>>> reduce(operator.add, (float(i) for i in list if i))
0.00264
>>> sum(float(i) for i in list if i)
0.00264

您必须将它们转换为浮动…谢谢Andrew,我只是想确认一下,您的意思是首先浮动列表中的每个项目?在lambda中,您正在进行串联,因为您有字符串。执行floatx+floaty或将float映射到每个元素。确保过滤掉第一个元素,因为它是无效的浮点