[[1, 2, 3], 3, [2, 4], 5]
的类型是
list[list[int] | int]
但是,如果嵌套列表具有未定义的深度,例如
[[[1, 2]], 2, [1, [3, [3]]]], 3, [2, [2]]]
,那么它会具有什么类型?
可以使用递归类型提示来表示任意深度嵌套的列表:
from typing import List, Union
NestedList = List[Union[int, 'NestedList']]
这定义了一个名为
NestedList
的类型别名,它可以是
int
或
NestedList
元素的列表。通过引用自身,它可以处理任意级别的嵌套。
例如,以下两个列表的类型注释都将是
NestedList
:
list1: NestedList = [[1, 2, 3], 3, [2, 4], 5]
list2: NestedList = [[[1, 2]], 2, [1, [3, [3]]]], 3, [2, [2]]]
标签:python,annotations,typing
From: 73346562