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

如何通过字典映射更新包含嵌套列表的字典的对应元素

问题修正方案

现有代码的错误点

  • 语法错误:network_values定义末尾的'Écran mobile 74缺少闭合单引号,运行会直接报语法错误。
  • 逻辑错误:直接把theater_values的值(完整嵌套列表)和network_values的字符串值做相等判断,不可能匹配成功。
  • 逻辑错误:即使匹配成功,你是直接把整个嵌套列表替换成了键的字符串,而不是仅替换列表中匹配到的对应元素。

优化实现思路

先将network_values的键值反转生成查找映射字典,不用嵌套循环遍历查找,效率更高。再遍历theater_values的每个嵌套列表,逐个判断元素是否需要替换。

正确可运行代码

def proto_csv(theater_values):
    network_values = {
        0: "CGR cinémas",
        1: "Ville de Choisy-le-Roi",
        2: "Pathé Gaumont",
        3: "UGC",
        4: "Cinéode",
        5: "Magestic",
        6: "Cinéville",
        7: "cinebus",
        8: "CGR",
        9: "Utopia",
        10: "Écran mobile 74"
    }
    # 反转键值生成查找表
    network_lookup = {value: str(key) for key, value in network_values.items()}
    # 遍历每个影院的属性列表
    for theater_id, attr_list in theater_values.items():
        # 遍历属性列表的每个元素
        for index, attr in enumerate(attr_list):
            # 匹配到对应值则替换
            if attr in network_lookup:
                attr_list[index] = network_lookup[attr]
    return theater_values

结果说明

运行后输出的theater_values符合需求,你给出的预期示例存在两处笔误:

  1. 键为"10"的列表最后一个元素Ville de Choisy-le-Roi会被替换为"1"
  2. 键为"11"的列表最后一个元素Pathé Gaumont会被替换为"2"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:04