【发布时间】:2021-01-30 23:51:09
【问题描述】:
我正在尝试通过 map 函数将 Map("a" -> 2, "b" -> 1) 转换为 seq("a","a","b"),目前我正在尝试运行下面的代码给我想要的结果。
有没有更聪明的方法来做到这一点?可能是通过地图功能的更好方法?
var multiset : Seq[T] = Seq[T]()
var variables : Seq[T] = data.map(x => x._1).toSeq
var variableCounts : Seq[Int] = data.map(x => x._2).toSeq
for(x <- 0 until variables.length){
for(y <- 0 until variableCounts(x))
multiset = multiset :+ variables(x)
}
【问题讨论】:
-
您的数据实际上是
("a" -> 2, "b" -> 1)还是Map("a" -> 2, "b" -> 1)?因为前者不是Map -
不确定您的代码应该做什么。
标签: scala loops iterator higher-order-functions simplification