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

Python如何提取字典中匹配指定值的所有键并存入列表

问题说明

你的代码存在两处逻辑错误,导致输出不符合预期:

  • 类型匹配逻辑错误:civil_freq字典中所有值均为列表类型(例如['bbb']),但你直接用列表和字符串'bbb'做相等判断,判断结果永远为False,所以条件分支永远不会触发,最终得到空列表。
  • 追加内容错误:你的需求是存入匹配值对应的键,但原代码调用append时传入的是字典对应的值,即便条件触发也无法得到预期的频率字符串结果。
修复代码

修改后的完整可运行代码如下:

civil_freq= {   '430.00': ['aaa'], 
                '430.02': ['aaa'], 
                '430.04': ['aaa'], 
                '430.06': ['bbb'], 
                '430.08': ['bbb'], 
                '430.10': ['bbb'], 
                '430.12': ['none'], 
                '430.14': ['none']}
person_freq=[]
person = 'bbb'
for key in civil_freq:
    # 取列表第一个元素做比对,若需要适配列表多元素场景可改为 if person in civil_freq[key]
    if civil_freq[key][0] == person:
        # 追加匹配到的键而非对应值
        person_freq.append(key)

print(person_freq)

也可以简化为列表推导式写法:

person = 'bbb'
person_freq = [k for k, v in civil_freq.items() if v[0] == person]

运行后输出:

['430.06', '430.08', '430.10']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:24:03