展开全部
$ python
Python 2.7.3 (default, Mar 14 2014, 11:57:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> lst=[
... '11', '1', '100', '10\n',
... '11', '2', '200', '20\n',
... '11', '3', '300', '30\n',
... '11', '4', '400', '40\n']
>>> # 第一步:将数据组织成方便使用的结构
>>> data = [
... map(int, lst[i*4:(i+1)*4])
... for i in xrange(len(lst)/4)
... ]
>>> data
[[11, 1, 100, 10], [11, 2, 200, 20], [11, 3, 300, 30], [11, 4, 400, 40]]
>>> # 第二32313133353236313431303231363533e58685e5aeb931333337613138步就直接简单地计算好了
>>> 1. * sum([x[2] for x in data]) / len(data)
250.0
>>> 1. * sum([x[3] for x in data]) / len(data)
25.0
>>>
或者在要处理很多月份,并有按月计算的需求时:按月-数据的字典结构组织数据
并设一个计算平均值的函数就更简单了>>> lst=[
... '11', '1', '100', '10\n',
... '11', '2', '200', '20\n',
... '11', '3', '300', '30\n',
... '11', '4', '400', '40\n',
... '12', '1', '120', '12\n',
... '12', '2', '230', '23\n',
... '12', '3', '340', '34\n',
... '12', '4', '450', '45\n',
... ]
>>>
>>> data = {}
>>> for x in [
... map(int, lst[i*4:(i+1)*4])
... for i in xrange(len(lst)/4)
... ]:
... data.setdefault(x[0], []).append(x[1:])
...
>>> def avg(serial):
... return 1. * sum(serial) / len(serial)
...
>>> avg([x[1] for x in data[12]]) # 计算12月的第二个数据的平均值
285.0
>>>