gpt4 book ai didi

syntax - 编号列表作为 YAML 数组

转载 作者:行者123 更新时间:2023-12-01 11:31:20 24 4
gpt4 key购买 nike

代替

key:
- thisvalue
- thatvalue
- anothervalue

我想拥有
key:
1. thisvalue
2. thatvalue
3. anothervalue

纯粹为了人类可读性,与 {key: [thisvalue, thatvalue, anothervalue]} 的解释相同.

这似乎不是基本 YAML 语法的一部分,但是有没有办法实现这一点 - 也许使用一些 advanced arcanery这在 YAML 中是可能的吗?

(我意识到这可以通过将列表编写为:
key:
- 1. thisvalue
- 2. thatvalue
- 3. anothervalue

但这是一个丑陋的黑客,我更喜欢一个解决方案,其中数字具有语义目的,而不仅仅是值文本的一部分,它还需要被解析和删除。)

最佳答案

在 YAML 中没有办法做到这一点。但是,您可以使用元素的正常嵌套,然后在解析过程中基于这些生成数组/列表/字典:

my_numbered_pseudo_list:
1: a
2: b
3: c
...
n: x

当您从上面加载示例时,您将获得键为“my_numbered_pseudo_list”的字典,其值为包含所有嵌套对的字典 {"1" : "a", "2" : "b", ..., "n" : "x"} .这是一个示例:
import yaml

doc = '''
list:
1: a
2: b
3: c
4: d
'''

y = yaml.load(doc);
list = []

for i in y['list']:
list.append(y['list'].get(i))

print list

这会给你
['a', 'b', 'c', 'd']

如果您想确保订单实际上保留在 YAML 文件中,您必须进行一些排序以获得有序的最终列表,其中保留了 YAML 文件中描述的订单。

我还看到人们对生成的字典(此处:“列表”)(例如在我不熟悉的 Ruby 中)使用有序散列调用,因此您可能想多挖一点。

重要的!

阅读 herehere .简而言之,为了确保您从 YAML 中获得真正有序的列表,您必须将您拥有的字典作为伪列表按键进行排序,然后提取值并将它们附加到最终列表中。

关于syntax - 编号列表作为 YAML 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775293/

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