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

如何基于列表索引从已有字典生成链式映射的新字典?

Python字典链式映射转换实现

原字典

dic = {
   'I2a1a': ['I2a1a2', 'I2a1a2a', 'I2a1a2a1a2'],
   'I2a1b': ['I2a1b1a1a1b1a'],
   'I2a1b2': ['I2a1b2a']
}

目标字典

new_dic = {
   'I2a1a': 'I2a1a2', 'I2a1a2': 'I2a1a2a', 'I2a1a2a': 'I2a1a2a1a2',
   'I2a1b': 'I2a1b1a1a1b1a',
   'I2a1b2': 'I2a1b2a'
}

转换规则

  • 原字典键对应的值列表长度为1时,直接将原键与该元素建立映射
  • 列表长度大于1时:
    • 原键对应列表第一个元素
    • 列表中除最后一个元素外,每个元素作为新键,对应列表中索引+1的元素

实现代码

dic = {
   'I2a1a': ['I2a1a2', 'I2a1a2a', 'I2a1a2a1a2'],
   'I2a1b': ['I2a1b1a1a1b1a'],
   'I2a1b2': ['I2a1b2a']
}

new_dic = {}
for key, values in dic.items():
    # 建立原键与列表首个元素的映射
    new_dic[key] = values[0]
    # 遍历列表,建立元素间的链式映射
    for idx in range(len(values) - 1):
        new_dic[values[idx]] = values[idx + 1]

# 验证结果
print(new_dic)

代码说明

  1. 初始化空字典new_dic用于存储结果
  2. 遍历原字典的每一组键值对
  3. 先将原键与列表第一个元素的映射加入新字典
  4. 再遍历列表的前len(values)-1个元素,依次将当前元素与下一个元素建立映射
  5. 最终得到符合要求的链式映射字典

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:44:56