2013-07-21 47 views
0

我有快譯通例如列表,獲取值的列表從字典列表中的Python:不使用列表理解

[{'id': 1L, 'name': u'Library'}, {'id': 2L, 'name': u'Arts'}, {'id': 3L, 'name': u'Sports'}] 

現在,我必須檢索該字典下面的列表中,而無需使用列表理解

[u'Library', u'Arts', u'Sports'] 

有什麼辦法可以在Python中實現這個嗎?我看到很多類似的問題,但所有的答案都是使用列表理解。

任何建議表示讚賞。提前致謝。

+7

你爲什麼如此害怕列表解析? – 2013-07-21 14:12:15

回答

10

你可以使用itemgetter

from operator import itemgetter 

categories = map(itemgetter('name'), things) 

但列表理解也好啊。列表解析有什麼問題?

5

您可以在這裏使用map()map()將lambda應用於每個項目testList並將其作爲列表返回。

>>> testList = [{'id': 1L, 'name': u'Library'}, {'id': 2L, 'name': u'Arts'}, {'id': 3L, 'name': u'Sports'}] 
>>> map(lambda x: x['name'], testList) 
[u'Library', u'Arts', u'Sports'] 
1

這裏 -

ltemp = [] 
for i in dictT: 
    ltemp.append(i['name']) 

ltemp是必需的列表。和dictT是你的字典清單。

4

您可以使用map()lambda

>>> dlist = [{'id': 1L, 'name': u'Library'}, {'id': 2L, 'name': u'Arts'}, {'id': 3L, 'name': u'Sports'}] 

>>> map(lambda d: d['name'], dlist) 
[u'Library', u'Arts', u'Sports']