我正在试一试 Python typing
模块。
我知道像下面这样指定 List
的长度是有效的*:
List[float, float, float] # List of 3 floats <-- NOTE: this is not valid Python
是否有较长列表的简写形式?如果我想将它设置为 10 个 float 怎么办?
List[float * 10] # This doesn't work.
如果可能的话,这会很方便。
*注意:事实证明,以这种方式向 Sequence[]
(及其子类)提供多个参数目前在 Python 中是无效的。此外,目前无法以这种方式使用 typing
模块指定 Sequence
长度。
最佳答案
你不能。列表是一种可变的、可变长度 结构。如果您需要固定长度的结构,请改用元组:
Tuple[float, float, float, float, float, float, float, float, float, float]
或者更好的是,使用 named tuple ,它同时具有索引和命名属性:
class BunchOfFloats(NamedTuple):
foo: float
bar: float
baz: float
spam: float
ham: float
eggs: float
monty: float
python: float
idle: float
cleese: float
对于固定长度的数据结构,列表只是错误的数据类型。
关于python - 使用 Python 类型模块指定序列或列表的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44833822/