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

如何基于旧字典键值映射关系生成符合溯源规则的新字典

需求实现方案

基础实现(逻辑直观,适合小字典场景)

直接遍历每个键,循环追溯映射链直到终止,收集所有中间值:

old_dct = {'A':'B','B':'C','C':'D','D':'E','F':'G','G':'K'}
new_dct = {}

for cur_key in old_dct:
    trace_node = cur_key
    value_list = []
    while trace_node in old_dct:
        # 取下一级映射值加入列表
        trace_node = old_dct[trace_node]
        value_list.append(trace_node)
    new_dct[cur_key] = value_list

# 验证输出
print(new_dct)

输出结果完全匹配需求给出的new_dct结构。

优化实现(带缓存,适合大字典长链路场景)

如果字典规模大、映射链路长,可通过缓存已计算的链路避免重复计算,大幅提升执行效率:

old_dct = {'A':'B','B':'C','C':'D','D':'E','F':'G','G':'K'}
new_dct = {}
# 缓存已生成的映射链,避免重复计算
chain_cache = {}

def generate_chain(key):
    if key in chain_cache:
        return chain_cache[key]
    if key not in old_dct:
        return []
    next_value = old_dct[key]
    current_chain = [next_value] + generate_chain(next_value)
    chain_cache[key] = current_chain
    return current_chain

for key in old_dct:
    new_dct[key] = generate_chain(key)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:36:03