首页 > 解决方案 > 访问字典列表中给定键的值

问题描述

给定一个字典列表,例如:

list_ = [
        { 'name' : 'date',
          'value': '2021-01-01'
        },
        { 'name' : 'length',
          'value': '500'
        },
        { 'name' : 'server',
          'value': 'g.com'
        },

如何访问键名 == 长度的值?

如果可能的话,我想避免迭代,并且能够检查名为“length”的键是否存在,如果存在,则获取它的值。

标签: pythonlistdictionary

解决方案


通过迭代和使用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

推荐阅读