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

Python函数向列表添加元素时触发TypeError报错排查

错误原因

travel_log本身是列表类型,Python中列表仅支持整数、切片作为索引,不支持字符串作为索引直接赋值。当前代码直接对列表本身写入字符串键值对,是触发本次TypeError的核心原因。
除此之外代码还有两处逻辑问题:

  • 旅行记录的存储结构是「列表嵌套字典」,单条记录是字典格式,需要先组装成符合格式的字典,再追加到列表中,不能直接给列表对象写键值对
  • 字典键名需要和已有条目保持统一:已有记录使用visits存储到访次数、cities存储到访城市,自定义的键名times_visited、Cities_visited和原有规范不一致,会导致后续数据读取异常。
修正方案

仅修改自定义函数内部的逻辑即可,上下标注禁止修改的代码块完全保留,修正后可运行代码如下:

travel_log = [
{
  "country": "France",
  "visits": 12,
  "cities": ["Paris", "Lille", "Dijon"]
},
{
  "country": "Germany",
  "visits": 5,
  "cities": ["Berlin", "Hamburg", "Stuttgart"]
},
]
#🚨 Do NOT change the code above
def add_new_country(country, times_visited, cities_visited):
    new_country_entry = {
        "country": country,
        "visits": times_visited,
        "cities": cities_visited
    }
    travel_log.append(new_country_entry)
    

#🚨 Do not change the code below
add_new_country("Russia", 2, ["Moscow", "Saint Petersburg"])
print(travel_log)

运行上述代码后,会正常输出包含俄罗斯旅行记录的完整列表,无类型报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:01:00