You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写函数从字典列表中获取指定name对应的value值?

问题分析与修正

你的代码逻辑偏离了需求:你需要根据name字段的值,找到对应字典的value字段内容,但原代码是遍历所有键值对,找到值等于传入key的项并打印,这就导致传入address时,匹配到的是{'name': 'address'}里的v='address',所以打印出address而非目标值。

另外,原函数仅打印结果,没有返回值,因此address变量最终会是None。

修正后的代码

my_list = [
     {'name': 'address', 'value': 'Testraat 100'},
     {'name': 'ripeID', 'value': 'nan'},
     {'name': 'name', 'value': 'Admin Account'},
     {'name': 'phone', 'value': '+31 6 12345678'},
     {'name': 'email', 'value': 'admin@domein.nl'}
]

def get_value(lst, key):
    for d in lst:
        # 检查当前字典的name字段是否等于目标key
        if d['name'] == key:
            # 返回对应的value字段值
            return d['value']
    # 未找到匹配项时返回None(可选)
    return None

address = get_value(my_list, 'address')
print(address)  # 输出: Testraat 100

优化说明

  • 直接针对每个字典的name字段做判断,无需遍历所有键值对,逻辑更精准高效。
  • 使用return返回结果,让调用方可以接收并使用该值,而非仅打印。
  • 如果需要处理列表中存在缺少name或value字段的字典,可以用get方法避免报错:
def get_value(lst, key):
    for d in lst:
        if d.get('name') == key:
            return d.get('value')
    return None

内容的提问来源于stack exchange,提问作者Beeelze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:52:28