如何根据一些相似的属性来分离相似的元组?
How to separate similar tuples based on some similar attribute?
我有一个元组列表,如下所示:
val days= List(("Sunday", 1), ("Monday", 2), ("Tuesday", 1),
("Wednesday", 2), ("Thursday", 3), ("Friday", 2),
("Saturday", 3))
我希望最终结果如下所示:
"data": [
[
"Sunday, 1",
"Tuesday, 1"
],
[
"Monday, 2",
"Friday, 2"
"Wednesday,2"
],
[
"Thursday, 3",
"Saturday,3"
]
]
您可以分组然后映射值:
days.groupBy(_._2)
.mapValues(_.map { case (name, nr) => s"$name, $nr" } )
.valuesIterator.toList
结果是:
List(List(Monday, 2, Wednesday, 2, Friday, 2), List(Sunday, 1, Tuesday, 1), List(Thursday, 3, Saturday, 3))
P.S.: 正如 Luis Miguel Mejía Suárez 建议的那样,使用 groupMap
(来自 scala 2.13)可以使它更简洁和可读:
days.groupMap(_._2) { case (name, nr) => s"$name, $nr" }
.valuesIterator.toList
我有一个元组列表,如下所示:
val days= List(("Sunday", 1), ("Monday", 2), ("Tuesday", 1),
("Wednesday", 2), ("Thursday", 3), ("Friday", 2),
("Saturday", 3))
我希望最终结果如下所示:
"data": [
[
"Sunday, 1",
"Tuesday, 1"
],
[
"Monday, 2",
"Friday, 2"
"Wednesday,2"
],
[
"Thursday, 3",
"Saturday,3"
]
]
您可以分组然后映射值:
days.groupBy(_._2)
.mapValues(_.map { case (name, nr) => s"$name, $nr" } )
.valuesIterator.toList
结果是:
List(List(Monday, 2, Wednesday, 2, Friday, 2), List(Sunday, 1, Tuesday, 1), List(Thursday, 3, Saturday, 3))
P.S.: 正如 Luis Miguel Mejía Suárez 建议的那样,使用 groupMap
(来自 scala 2.13)可以使它更简洁和可读:
days.groupMap(_._2) { case (name, nr) => s"$name, $nr" }
.valuesIterator.toList