从查询中我得到这些值:
[{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
如果没有 for 循环,如何将所有year's
值提取到数组中?
我需要得到一个像这样的列表:
[2012,2013,2013,2013]
从查询中我得到这些值:
[{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
如果没有 for 循环,如何将所有year's
值提取到数组中?
我需要得到一个像这样的列表:
[2012,2013,2013,2013]
使用列表理解:
>>> lis = [{'year': 2012L}, {'year': 2013L}, {'year': 2013L}, {'year': 2013L}]
>>> [x['year'] for x in lis]
[2012L, 2013L, 2013L, 2013L]
您可以使用列表理解:
>>> l = [{'year': 2012L},
... {'year': 2013L},
... {'year': 2013L},
... {'year': 2013L}]
>>> [item['year'] for item in l]
[2012L, 2013L, 2013L, 2013L]
假设
a=[{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
使用 while 循环和 pop()
while(a):
v=a.pop()
print v['year']
有地图
def rv(x): return x['year']
list(map(rv,a))
[2012L, 2013L, 2013L, 2013L]
operator.itemgetter
列表理解非常适合此。每次迭代也很容易扩展和获取多个项目(参见itemgetter
文档)。
from operator import itemgetter
dicts = [{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
extractor = itemgetter('year')
print [extractor(d) for d in dicts] # [2012L, 2013L, 2013L, 2013L]