python - 按键访问列表元素

时间:2013-05-26 17:32:20

标签: python

如果我有以下结构:

[
    {'id' : 100, 'name' : 'Bill'},
    {'id' : 100, 'name' : 'Dave'}
]

如何通过'name'键获取元素。也就是说,我想获得{'id' : 100, 'name' : 'Dave'}但不必迭代并检查每个匹配。

这是可能的,如果是这样的话?

2 个答案:

答案 0 :(得分:4)

您可以先将您的词典列表转换为一个以“name”为键的字典:

data = {x['name']: x for x in original_data}

然后你使用:

data['Dave']
data['Bill']

PS: 对于早于2.7的Python,请使用:

data = dict((x['name'], x) for x in original_data)

答案 1 :(得分:0)

这就是你要找的东西

[x for x in a if x['name']=='Dave']

但是你在这里迭代列表并检查每个项目。实际上,没有迭代列表就没办法做这样的事情,因为它是list而不是map