クエリからこれらの値を取得しています:
[{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
year's
for ループがなければ、すべての値を配列に抽出するにはどうすればよいですか?
次のようなリストを取得する必要があります。
[2012,2013,2013,2013]
クエリからこれらの値を取得しています:
[{'year': 2012L},
{'year': 2013L},
{'year': 2013L},
{'year': 2013L}]
year's
for ループがなければ、すべての値を配列に抽出するにはどうすればよいですか?
次のようなリストを取得する必要があります。
[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]