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

sre*_*nth 0 python

我有一个dict列表,例如,

[{'id': 1L, 'name': u'Library'}, {'id': 2L, 'name': u'Arts'}, {'id': 3L, 'name':  u'Sports'}]
Run Code Online (Sandbox Code Playgroud)

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

[u'Library', u'Arts', u'Sports']
Run Code Online (Sandbox Code Playgroud)

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

任何建议表示赞赏.提前致谢.

Ble*_*der 10

你可以使用itemgetter:

from operator import itemgetter

categories = map(itemgetter('name'), things)
Run Code Online (Sandbox Code Playgroud)

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


Suk*_*lra 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']
Run Code Online (Sandbox Code Playgroud)