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

使用list[int]作类型提示报错:TypeError: 'type' object is not subscriptable

解决list[int]类型提示报错的问题

问题原因

你遇到的TypeError: 'type' object is not subscriptable是因为Python版本低于3.9时,内置的list类型不支持直接用list[int]这种下标语法标注元素类型。这种写法是PEP 585引入的特性,仅在Python 3.9及以上版本可用。

两种解决方案

方案1:升级Python到3.9及以上版本

如果环境允许,直接升级Python到3.9+,你的原代码不需要任何修改就能正常运行,执行后会输出预期结果:Les valeurs paires dans [5, 8, -2, 23, 11, 4] sont : [8, -2, 4]。

方案2:使用typing模块的List类型(兼容旧版本)

如果无法升级Python,需要从typing模块导入List,并用List[int]替代list[int]。修改后的代码如下:

from typing import List

def filtre_valeurs_paires(valeurs: List[int]) -> List[int]:
    valeurs_entieres: List[int] = list(filter(lambda valeur: valeur % 2 == 0, valeurs))
    return valeurs_entieres

candidats: List[int] = [5, 8, -2, 23, 11, 4]
print("Les valeurs paires dans {} sont : {}".format(candidats, filtre_valeurs_paires(candidats)))

执行这段代码同样会得到预期的偶数列表输出。

额外说明

  • 从Python 3.9开始,除了list,dict、set、tuple等内置容器类型都支持直接用下标语法标注元素类型(比如dict[str, int])。
  • 如果你使用的是Python 3.10及以上版本,还可以使用|运算符标注联合类型(比如list[int | str]),进一步简化类型提示写法。

内容的提问来源于stack exchange,提问作者Marc Le Bihan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:52:08