gpt4 book ai didi

list - 在 Scala 中将一个列表拆分为两个列表

转载 作者:行者123 更新时间:2023-12-04 02:49:21 26 4
gpt4 key购买 nike

我有一个包含类似内容的列表:

val lines: List[String] = List("bla blub -- id_1", "sdkfjdf -- id_2", "blubber blab -- id_1", "foo -- id_3", "ieriuer -- id_2", "bar -- id_3")

所以基本上这个列表包含一个恰好出现两次的标识符 (id_x) 和一个属于其中一个标识符的字符串。

我想将该列表拆分为两个列表,然后每个列表包含一组唯一的 id_s 及其所属的字符串,如下所示:

l1("bla blub -- id_1", "sdkfjdf -- id_2", "foo -- id_3") 
l2("blubber blab -- id_1", "ieriuer -- id_2", "bar -- id_3")

我该如何以实用的方式做到这一点?

最好的问候,斯文

最佳答案

lines.groupBy(_.split(" -- ")(1)).toList.map(_._2).transpose

这是完成它的粗略和现成的方法;实际上,如果您想对这些数据做更多的事情,最好将这些项目解析为一个案例类,a la:

case class Item(id: String, text: String)
val items = for {
line <- lines
Array(text, id) = line.split(" -- ")
} yield Item(id, text)

然后和上面一样做,除了groupBy(_.id),还有方便的sortBy(_.id)

关于list - 在 Scala 中将一个列表拆分为两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18114139/

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