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

如何匹配字典列表与嵌套列表并提取connection值?

解决方法

首先注意:你写的object1里的元素是集合(大括号包裹无键值关系),但根据需求应该是字典(键值对用冒号分隔),这很可能是你匹配失败的核心原因。先修正object1的格式:

# 修正后的object1:每个元素为单个键值对的字典
object1 = [
    {'samplekey': 'samplevalue'},
    {'samplekey1': 'samplevalue1'},
    {'samplekey2': 'samplevalue2'}
]

object2 = [
    ["samplekey", "samplevalue", {"connection": "Direct"}],
    ["samplekey1", "samplevalue1", {"connection": "Cross"}]
]

高效匹配方案

先把object2转换成以(key, value)为键的查找字典,避免嵌套循环,提升查找效率:

# 构建object2的查找映射
connection_map = {}
for item in object2:
    key, val, conn_info = item
    connection_map[(key, val)] = conn_info['connection']

# 遍历object1提取对应connection值
for obj in object1:
    # 取出字典中的唯一键值对(假设每个字典只有一组键值)
    key, val = next(iter(obj.items()))
    # 查找并输出结果,无匹配时返回默认提示
    conn = connection_map.get((key, val), "无匹配项")
    print(f"键{key}对应connection: {conn}")

运行结果

键samplekey对应connection: Direct
键samplekey1对应connection: Cross
键samplekey2对应connection: 无匹配项

补充说明

  • 如果object1中的字典可能包含多个键值对,需根据实际需求调整逻辑(比如指定匹配特定的键)。
  • 使用connection_map.get()可以处理object1中无匹配项的情况,避免抛出KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:25:43