所以我目前有一个具有如下数据的地图集:
val mymap = Map ("Apple" -> List(1, 4 , 5, 7, 9, 8, 0), "Orange" -> List(5, 7, 2, 1, 8, 4, 3))
数据表示每个用户拥有其中一个的次数。我想编写一个可以显示密钥的函数,然后拉一个值即尾部。我没有取得多大成功,并且听说元组列表很难操作?对这个有任何帮助吗?
def mapTail(list: String): Iterable[(String, List[Int])] = { val tailValue: Iterable[(String, List[Int])] = { mymap.groupBy(_._2).values.map(_.tail) } println(String) tailValue }
我现在拥有的是什么。
Ps - 不确定如何将代码格式化为使用Stack Overflow的新代码,因此如果有人可以对其进行格式化,那么我就不会感到满意。
答案 0 :(得分:0)
也许我错过了一些东西,但是如果你想要每个密钥的tail
:
mymap.map { case (key, value) => (key, value.tail) }
res2: scala.collection.immutable.Map[String,List[Int]] =
Map(Apple -> List(4, 5, 7, 9, 8, 0), Orange -> List(7, 2, 1, 8, 4, 3))
答案 1 :(得分:0)
或者这个:
def printKeysAndTail(map: Map[String, List[Int]]): Unit = mymap.foldLeft(Iterable.empty[(String, List[Int])])((o,n) => Iterable((n._1, n._2.tail)) ++ o).foreach(println)
内部部分正是您在原始代码中所期望的类型:
mymap.foldLeft(Iterable.empty[(String, List[Int])])((o,n) => Iterable((n._1, n._2.tail)) ++ o)