gpt4 book ai didi

python - 在 yaml 文件中使用带步长的范围

转载 作者:行者123 更新时间:2023-11-28 17:10:02 25 4
gpt4 key购买 nike

在 .yaml 文件中,我想为某个字段指定范围,例如,
列表字段:范围(10,50,5)
在上面,我打算将 list_field 设为“pythonic”range(10,50,5)。有办法实现吗?

最佳答案

YAML 无法在 its specification 中指定范围,因此,如果您想要一种与语言无关的方式来指定范围,则必须在 native YAML 之上发明自己的编码。一些例子:

list_field:
start: 10
step: 5
stop: 50
list_field2:
range:
- 10
- 50
- 5
list_field3: range(10,50,5)

如果使用类似 pyyaml 的东西, 然后你可以使用 custom resolver and constructor教 pyyaml 如何始终将这些东西解码/编码为/来自 python 范围对象 (python3) 或 python xrange 对象 (python2)

如果您不关心其他语言,您也可以始终将范围存储为序列化对象,例如使用标签,例如!!python/object/apply:builtins.range [10, 50, 5]。它们看起来不是最漂亮的,但会反序列化为 python range 对象,而无需编写自定义编码器/解码器代码:

>>> import yaml
>>> print(yaml.dump({'list_field': range(10, 50, 5)}))
list_field: !!python/object/apply:builtins.range [10, 50, 5]
>>> print(yaml.load(yaml.dump({'list_field': range(10, 50, 5)})))
{'list_field': range(10, 50, 5)}

另见 How to specify ranges in YAML?

关于python - 在 yaml 文件中使用带步长的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com