Python 3.9 类型提示中有没有办法定义具有特定元素类型的列表数据结构?

Is there a way to define a list data structure with specific element types in Python 3.9 type hinting?

例如,我想定义数据结构X,其中X是一个包含三个元素的list。第一个和第三个元素是字符串,第二个元素是整数。所以像这样:

X = List[str, int, str]

有没有合适的方法来定义这样的东西?

列表通常用于未知长度的数据集合。 tuple 更适合您的用例:

from typing import Tuple

MyType = Tuple[str, int, str]
my_tuple: MyType = ("foo", 42, "bar")

更新:正如@sj95126 在他们的评论中提到的,您不必从 Python >= 3.9:

开始导入 typing.Tuple
MyType = tuple[str, int, str]