我有一个dict列表,例如,
[{'id': 1L, 'name': u'Library'}, {'id': 2L, 'name': u'Arts'}, {'id': 3L, 'name': u'Sports'}]
现在,我必须从这个字典中检索以下列表,而不使用列表理解
[u'Library', u'Arts', u'Sports']
有没有办法在python中实现这一点?我看到了许多类似的问题,但所有答案都是使用列表理解。
任何建议表示赞赏。提前谢谢。
答案 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)
>>> 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是你的词典列表。