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

Python函数参数如何标注为列表的列表(嵌套列表)类型

你写的标注方式存在的问题

你写的def fun(words:(list,list))这种写法既没有可读性,也不能被Python的类型检查工具(比如mypy、pyright)正确识别。
这种写法本质是给参数加了一个值为(list, list)的元组注解,没有任何「元素为列表的嵌套列表」的语义,其他开发者看到也完全没法直观理解你要表达的参数类型。

嵌套列表的正确标注方式

分Python版本有两种规范写法:

  • Python 3.9及以上版本
    官方原生支持list的泛型标注,直接用方括号指定列表内部的元素类型即可,嵌套列表就嵌套写泛型参数:
# 仅标注是嵌套列表,不限制内层列表的元素类型
def fun(words: list[list]):
    # 你的业务代码
    pass

# 额外指定内层列表的元素是字符串,更严谨
def fun(words: list[list[str]]):
    pass
  • Python 3.8及更早版本
    需要从标准库的typing模块导入List类型来做标注:
from typing import List

# 仅标注是嵌套列表
def fun(words: List[List]):
    pass

# 标注内层列表元素为字符串
def fun(words: List[List[str]]):
    pass

补充说明:只有当你要标注的参数是固定长度、每个位置类型固定的元组时,才会用到(类型1, 类型2)对应的Tuple[Type1, Type2]写法,和你当前需要的嵌套列表场景完全无关。

内容的提问来源于stack exchange,提问作者Tereso del Río Almajano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:18:03