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

Python中如何在字典嵌套列表结构中简洁查找符合条件的字典元素

方法1:单client下查找(已知具体client键)

如果要获取该client下所有匹配的条目,直接用列表推导式:

# 精确匹配name等于test2
matched_entries = [entry for entry in d['client1'] if entry['name'] == 'test2']
# 如果是你现有逻辑的模糊匹配(test2是name的子串),改成if 'test2' in entry['name']即可

如果只需要第一个匹配的条目,用next()加生成器表达式,找到就停止遍历,效率更高:

# 没匹配到的话默认返回None,不会抛出异常
first_match = next((entry for entry in d['client1'] if entry['name'] == 'test2'), None)

方法2:全字典所有client下查找

如果要遍历所有clientX键找全局匹配的条目,用嵌套列表推导式:

all_matched = [
    entry 
    for client_list in d.values() 
    for entry in client_list 
    if entry['name'] == 'test2'
]

方法3:高频查询场景优化

如果你需要多次执行这类查找操作,提前构建索引,后续查询复杂度降到O(1):

# 提前构建name到条目列表的索引
name_index = {}
for client_list in d.values():
    for entry in client_list:
        name_index.setdefault(entry['name'], []).append(entry)

# 后续查找直接取即可
test2_entries = name_index.get('test2', [])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:45:04