从python中的dict列表中获取值列表:不使用list comprehension

时间:2013-07-21 14:11:44

标签: python

我有一个dict列表,例如,

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

现在,我必须从这个字典中检索以下列表,而不使用列表理解

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

有没有办法在python中实现这一点?我看到了许多类似的问题,但所有答案都是使用列表理解。

任何建议表示赞赏。提前谢谢。

4 个答案:

答案 0 :(得分:10)

您可以使用itemgetter

from operator import itemgetter

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

但列表理解也很好。列表推导有什么问题?

答案 1 :(得分: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']

答案 2 :(得分: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']

答案 3 :(得分:1)

这里 -

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

ltemp是必需列表。而dictT是你的词典列表。