如果我具有以下结构:[ {'id' : 100, 'name' : 'Bill'}, {'id' : 100, 'name' : 'Dave'}]如何通过“名称”键获取元素。就是说,我想得到{'id' : 100, 'name' : 'Dave'}但不必重复检查每个对象是否匹配。这有可能吗?
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
您可以首先将字典列表转换为以“名称”为键的单个字典:
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)
沧海一幻觉
TA贡献1824条经验 获得超5个赞
这就是您要寻找的
[x for x in a if x['name']=='Dave']
但是在这里,您要遍历列表并检查每个项目。实际上,如果不对列表进行遍历,就无法做到这一点,因为它是alist
而不是a map
。
添加回答
举报
0/150
提交
取消