我有一个YAML文件,我有一个包含我想要 Shuffle 的字符串的列表:
列表:
['StmRsBgmSea02', 'StmRsBgmShopRadio', 'StmRsBgmSea01', ...]
这不是完整的列表。
YAML文件:
Version: 3
IsBigEndian: False
SupportPaths: False
HasReferenceNodes: False
root:
StageInfoList:
- Name: SeaWorldHomeStage
StageScenarioInfoList:
- ScenarioNo: !l 0
StagePlayInfoList:
- {Name: WorldMain, ResourceName: StmRsBgmSea02}
- {Name: Shop, ResourceName: StmRsBgmShopRadio}
- ScenarioNo: !l 1
StagePlayInfoList:
- {Name: WorldMain, ResourceName: StmRsBgmSea01}
- {Name: Boss, ResourceName: StmRsBgmBossHaikai_B}
- {Name: Town, ResourceName: StmRsBgmSea01beach}
- {Name: BossDead, ResourceName: WsdRsBgmJgSeaFountain}
- Name: SeaWorldCostumeStage
StageScenarioInfoList:
- ScenarioNo: !l 0
StagePlayInfoList:
- {Name: CostumeRoom, ResourceName: WsdRsBgmMarioPlayHula}
这个文件有800行,我有一个列表,上面有ResourceName:
后面的所有名字。
我希望ResourceName:
之后的每个值都被替换为列表中的一个随机值。重要的是,在一个RessourceName
被随机化之后,该字符串将从列表中删除。这样就不会有任何值出现两次。
1条答案
按热度按时间w8f9ii691#
当你从YAML(或JSON)加载数据时,你会得到一个容易递归的数据结构:所有的东西要么是一个字符串,要么是一个列表,要么是一个值,你应该做一个例程,在递归的时候沿着替换值的列表(这里是
[v0, v1, v2, ...]
),并且每当你找到一个名为ResourceName
的键时就给它们赋值。其给出:
如果合适,您可能希望在调用
recur()
后检查替代项是否为空