python - 访问字典列表中给定键的值
问题描述
给定一个字典列表,例如:
list_ = [
{ 'name' : 'date',
'value': '2021-01-01'
},
{ 'name' : 'length',
'value': '500'
},
{ 'name' : 'server',
'value': 'g.com'
},
如何访问键名 == 长度的值?
如果可能的话,我想避免迭代,并且能够检查名为“length”的键是否存在,如果存在,则获取它的值。
解决方案
通过迭代和使用next
,您可以执行以下操作:
list_ = [
{'name': 'date',
'value': '2021-01-01'
},
{'name': 'length',
'value': '500'
},
{'name': 'server',
'value': 'g.com'
}
]
res = next(dic["value"] for dic in list_ if dic.get("name", "") == "length")
print(res)
输出
500
作为替代方案,如果"names"
是唯一的,您可以构建一个字典以避免在 上进一步迭代list_
,如下所示:
lookup = {d["name"] : d["value"] for d in list_}
res = lookup["length"]
print(res)
输出
500
请注意,如果您需要第二个键,例如"server"
,则无需迭代,只需执行以下操作:
lookup["server"] # g.com
推荐阅读
- django - Getting field value with DjangoRestFramework serializer
- security - 我们如何在 Django 石墨烯中为 graphql api 添加授权?
- python - 我对编程很陌生,这是我的第一个 python 脚本作业。有人可以告诉我我做错了什么吗?
- c++ - 涉及派生类成员函数
- windows - 使用 powershell 下载某些文件会产生损坏的文件
- python - where have i generated the reported ambiguity and how do i resolve it?
- python - ImportError: 尝试在没有已知父包的情况下进行相对导入 :(
- elasticsearch - 如何对 ElasticSearch 中的聚合字段执行复杂查询
- html - 我怎样才能模糊整个身体而不是唯一的一个div?
- arrays - perl中两个数组的比较