gpt4 book ai didi

scala - 在 Scala 中,如何组契约(Contract)一个 List 的元素序列?

转载 作者:行者123 更新时间:2023-12-05 00:43:57 24 4
gpt4 key购买 nike

我如何转换这个列表:

List("a", "b", "c", "d")

包含以下元素的列表

List(List("a"), List("a", "b"), List("a", "b", "c"), List("a", "b", "c", "d"))

我的要求是从包含目录名称的列表构建一个相对目录路径列表,其中 a 是根目录,b 的叶子aa/b

例子:

"fruit", "tropical", "mango"

转换为:

"fruit", "fruit/tropical", "fruit/tropical/mango"

编辑:我可以反复执行此操作,但我正在寻找一个功能性解决方案。

最佳答案

你可以使用 inits 来实现你正在寻找的类似的东西:

val xs = List("a", "b", "c", "d")
val ys = xs.inits.toList.reverse.drop(1)

解释:

xs.inits.toList 会给你这个结果:

List(List(a, b, c, d), List(a, b, c), List(a, b), List(a), List())

现在你可以反转它并删除第一个元素并得到这个:

List(List(a), List(a, b), List(a, b, c), List(a, b, c, d))

然后,将您得到的结果生成一个 String:

ys.map(_.mkString("/")) // results in List(a, a/b, a/b/c, a/b/c/d)

关于scala - 在 Scala 中,如何组契约(Contract)一个 List 的元素序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476983/

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