我正在试一试 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
对于固定长度的数据结构,列表只是错误的数据类型。
https://stackoverflow.com/questions/58183705/
相关文章:
angular - 重新加载页面后保持元素位置 - 拖放 cdk Angular 7
google-chrome - 一些 Font Awesome 图标在 Chrome 中不显示
android-studio - Android studio 在执行 lint 时找不到 kotl
node.js - nodemailer 不发送邮件,给出 250 ok
python - 将部分训练的 scikit-learn 模型存储或检查点到磁盘
reactjs - 错误 : [mobx] Computed values are not allo
selenium - Appium/WinAppDriver 无法找到上下文菜单 - 但仅在某些机器