Vla*_*kov 8 collections scala list map
我想做的就是转换以下内容:
List(2, 4, 6, 8, 10)到Map(0 -> 2, 1 -> 4, 2 -> 6, 3 -> 8, 4 -> 10 ).换句话说,将索引映射到值.它应该很容易,但我遗漏了一些东西.
任何人都可以建议一个简单的方法吗?
UPD:只是为了推广解决方案.假设我需要执行额外的值转换.例如,用它包装List(_).在我们的情况下:
List(2, 4, 6, 8, 10) - > Map(0 -> List(2), 1 -> List(4), 2 -> List(6), 3 -> List(8), 4 -> List(10))
Deb*_*ski 17
List(2, 4, 6, 8, 10).zipWithIndex.map(_.swap).toMap
Run Code Online (Sandbox Code Playgroud)
om-*_*nom 16
val xs = List(2, 4, 6, 8, 10)
(xs.indices zip xs).toMap
// Map(0 -> 2, 1 -> 4, 2 -> 6, 3 -> 8, 4 -> 10)
Run Code Online (Sandbox Code Playgroud)
UPD:如果您想要转换值,您可以使用已发布的解决方案之一然后使用地图mapValues,也可以事先应用转换:
List(2, 4, 6, 8, 10).zipWithIndex.map { case (v, i) => i -> List(v) }.toMap
res0: Map[Int,List[Int]] = Map(0 -> List(2), 1 -> List(4), 2 -> List(6), 3 -> List(8), 4 -> L
ist(10))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6276 次 |
| 最近记录: |