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

Python中如何将嵌套列表映射为可迭代字典生成课程索引映射

问题核心原因

你现有两个核心问题:

  1. 你正在使用的course_index是索引到课程名的结构,每次通过课程名找索引都需要遍历所有值,效率极低
  2. 你尝试的嵌套循环存在语法错误、逻辑错误:
    • 遍历字典键值对需要调用.items()方法,直接遍历course_index只能拿到键
    • 相等判断要用==,你写的=是赋值操作,语法错误
    • 循环里的x和y是临时变量,修改它们不会改变原classes列表的值,自然看不到效果

最简解决方案

首先给course_index做一个反向映射(课程名到索引),单次生成后每次查找都是O(1)效率,之后用列表推导式一行就能生成目标结果:

# 第一步:生成课程名到索引的反向映射,仅需执行一次
name_to_idx = {v: k for k, v in course_index.items()}

# 第二步:直接映射生成目标结果
mapped_classes = [[name_to_idx[x], name_to_idx[y]] for x, y in classes]

运行后得到的mapped_classes就是你需要的[[0,1],[2,3],[1,2]]。


额外优化建议

你之前生成course_index的代码效率也可以优化,不需要提前初始化空键、不需要每次遍历values判断是否存在,先建反向映射再转成course_index性能更高:

name_to_idx = {}
for x, y in classes:
    if x not in name_to_idx:
        name_to_idx[x] = len(name_to_idx)
    if y not in name_to_idx:
        name_to_idx[y] = len(name_to_idx)

# 转成你需要的索引到课程名的course_index
course_index = {v: k for k, v in name_to_idx.items()}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:57:01