如何从python的list中提想要的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从python的list中提想要的值相关的知识,希望对你有一定的参考价值。
有一个list=[ '11', '1', '100', '10\n', '11', '2', '200', '20\n', '11', '3', '300', '30\n', '11', '4', '400', '40\n'],其中'11'代表11月,'1','2','3','4'代表1-4号,'100','200','300','400'代表值1,'10\n','20\n','30\n','40\n'代表值2。
我想求值1的平均值,以及值2的平均值,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]]
>>> # 第二步就直接简单地计算好了
>>> 1. * sum([x[2] for x in data]) / len(data)
250.0
>>> 1. * sum([x[3] for x in data]) / len(data)
25.0
>>>
或者在要处理很多月份,并有按月计算的需求时:按月-数据的字典结构组织数据
并设一个计算平均值的函数就更简单了
... '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
>>> 参考技术A 我用的是2.6的python,代码如下:
# -*- coding:utf-8 -*-
list=[ '11', '1', '100', '10\n', '11', '2',
'200', '20\n', '11', '3', '300', '30\n', '11', '4', '400', '40\n']
a, b, sum1, sum2 = 0, 0, 0, 0
for i in range(len(list)):
if (i-2)%4 == 0:
sum1 += 1.0
a += int(list[i])
a /= sum1
elif '\n' in list[i]:
sum2 += 1.0
b1 = list[i].split('\n')[0]
b += int(b1)
b /= sum2
print '值1的平均值',a,'\n','值2的平均值',b本回答被提问者采纳
如何拆分每个第N个元素的Python列表
我想要做的很简单,但我找不到怎么做。
- 从1st元素开始,将每个第4个元素放入新列表中。
- 重复第2,第3和第4个元素。
从:
list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b']
至:
list1 = ['1', '5', '9']
list2 = ['2', '6', 'a']
list3 = ['3', '7', 'b']
list4 = ['4', '9']
换句话说,我需要知道如何:
- 从列表中获取第N个元素(在循环中)
- 将其存储在新阵列中
- 重复
以上是关于如何从python的list中提想要的值的主要内容,如果未能解决你的问题,请参考以下文章
当代超吸金的行业“Python工程师”,如何快速从Pytho入门到初级Python工程师?