我试图计算Python 2.7上的'奇怪'列表平均值。 清单是:
list = ['', '0.00066', '0.00066', '0.00066', '0.00066']
我用来获得总和的cmd:reduce(lambda x, y: x + y, list)
但我的回复错误:列表总和是:0.000660.000660.000660.00066
请告知如何获得列表的平均值。
答案 0 :(得分:0)
您需要将字符串转换为float,并且空字符串会引发错误。幸运的是,您可以在转换前过滤掉空白。
>>> 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