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

Python报错Expected type 'SupportsIndex', got 'str' instead问题排查

报错原因分析

报错提示:Expected type 'SupportsIndex', got 'str' instead
含义:代码中需要传入支持索引的整数类型参数的位置,实际传入了字符串类型的值

  • 原代码错误地对月份列表执行了str()类型转换,导致变量n是字符串类型
  • range()函数仅接受整数作为入参,用来指定循环的起止/步长,无法识别字符串参数,因此触发类型报错
修复方案

根据常见的开发需求,提供3种可用的修改方案:

  • 方案1:直接遍历月份列表,适用于仅需要获取每个月份值的场景
import random

month_list = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]

for month in month_list:
    # 此处补充后续业务逻辑
    pass
  • 方案2:用enumerate同时遍历索引和月份值,适用于需要用到索引编号的场景
import random

month_list = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]

for index, month in enumerate(month_list):
    # 此处补充后续业务逻辑
    pass
  • 方案3:保留range写法,先取列表长度作为入参,适用于必须按索引访问的特殊场景
import random

month_list = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]
n = len(month_list)

for index in range(n):
    current_month = month_list[index]
    # 此处补充后续业务逻辑
    pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:27:00