如何进一步提取列表以从双嵌套列表中创建三重嵌套列表

时间:2019-07-31 13:07:07

标签: scala

我有一个列表列表,我想使用内部值之一来分隔

我本以为哈希映射可以工作,但是我对它并不熟悉,所以列表看起来像这样

statusJob_A = `curl https://jenkins/view/jobA/lastBuild/api/json | grep "\"result\":\"SUCCESS\"" && echo "FAILED"`

statusJob_B = `curl https://jenkins/view/jobB/lastBuild/api/json | grep "\"result\":\"SUCCESS\"" && echo "FAILED"`

我想得到类似的东西

val data: List[(Int, Int, Int, Int)] = List((0, 1, 2, 3), (1, 1, 2, 7), (2, 1, 5, 5), (3, 1, 3, 7), (4, 1, 2, 8), (5, 1, 5, 4), (6, 1, 3, 5))

我用每个列表中的第三个元素将其分隔

2 个答案:

答案 0 :(得分:3)

这是您要寻找的解决方案,但是您将拥有列表列表而不是元组列表:

val list : List[(Int, Int, Int, Int)] = List((0, 1, 2, 3), (1, 1, 2, 7), (2, 1, 5, 5), (3, 1, 3, 7), (4, 1, 2, 8), (5, 1, 5, 4), (6, 1, 3, 5))

 list.groupBy(_._3).values.toList

> res = List(List((0,1,2,3), (1,1,2,7), (4,1,2,8)), List((2,1,5,5), (5,1,5,4)), List((3,1,3,7), (6,1,3,5)))

答案 1 :(得分:0)

您可以在列表上使用groupBy函数:

list.groupBy( i => i._3 )

将创建一个哈希表。之后,您将需要按摩地图的values

祝你好运!