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

Python中如何为未知维度的N维列表添加类型提示?

适配任意维度嵌套列表的类型提示方案

要实现能同时适配一维、二维乃至任意维度嵌套列表的类型提示,可以利用递归类型别名,这在Python 3.10及以上版本中得到支持。

定义递归嵌套列表类型

首先通过typing模块定义一个递归的类型别名,用来表示任意层级的嵌套列表:

from typing import TypeVar, Union, List

T = TypeVar('T')
# 递归类型:要么是单个元素T,要么是包含NestedList[T]的列表
NestedList = Union[T, List['NestedList[T]']]

扁平化函数的类型提示示例

用这个类型来标注扁平化函数的参数和返回值,就能完美适配各种维度的嵌套列表输入:

def flatten(nested: NestedList[T]) -> List[T]:
    flattened = []
    for element in nested:
        if isinstance(element, list):
            flattened.extend(flatten(element))
        else:
            flattened.append(element)
    return flattened

这个类型的优势在于:

  • 自动适配[1, 2](一维列表)、[[1, 2], [3, 4]](二维列表)甚至更深层级的嵌套结构
  • 保留类型安全,类型检查工具(比如mypy)能识别最终返回的是元素类型为T的一维列表

和numpy的维度标注不同,这个方案不需要预先固定维度数量,完全适配未知层级的嵌套列表场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:19:55