如果我有以下结构:
[
{'id' : 100, 'name' : 'Bill'},
{'id' : 100, 'name' : 'Dave'}
]
如何通过“名称”键获取元素。也就是说,我想得到{'id' : 100, 'name' : 'Dave'}
但不必迭代并检查每个是否匹配。
这可能吗?如果可以,怎么办?
如果我有以下结构:
[
{'id' : 100, 'name' : 'Bill'},
{'id' : 100, 'name' : 'Dave'}
]
如何通过“名称”键获取元素。也就是说,我想得到{'id' : 100, 'name' : 'Dave'}
但不必迭代并检查每个是否匹配。
这可能吗?如果可以,怎么办?
您可以首先将您的字典列表转换为以“名称”为键的单个字典:
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)
这就是你要找的
[x for x in a if x['name']=='Dave']
但是在这里,您正在遍历列表并检查每个项目。实际上,没有迭代列表就没有办法做这样的事情,因为它是 alist
而不是 a map
。