【发布时间】:2022-09-23 03:14:34
【问题描述】:
我目前正在为项目添加类型提示,但不知道如何正确处理。我有一个列表列表,嵌套列表包含两个 int 和 float 类型的元素。嵌套列表的第一个元素始终是 int,第二个元素始终是 float。
my_list = [[1000, 5.5], [1432, 2.2], [1234, 0.3]]
我想对它进行类型注释,以便在 for 循环或循环理解中解包内部列表保留类型信息。我可以将内部列表更改为元组,并得到我正在寻找的内容:
def some_function(list_arg: list[tuple[int, float]]): pass
但是,我需要内部列表是可变的。有没有一种很好的方法来为列表执行此操作?我知道像 Sequence 和 Collection 这样的抽象类不支持多种类型。
-
不,我不认为有任何方法可以用列表来做到这一点。 python类型系统中的列表是同质的
-
虽然元组不可变,但您的封闭列表是,因此您可以替换整个元组
-
我没有将其标记为重复,但这是否回答了您的问题? Existence of mutable named tuple in Python?。接受的答案建议使用来自 pypi 的模块
recordclass。 -
@Stef 该帖子建议使用我宁愿避免使用的第三方课程。我一直在寻找一个更专注于类型提示的解决方案,具有巧妙的子类或类似的东西。
标签: python data-structures type-hinting python-typing