我是scala的初学者,我想知道如何追加,或者在另一个元组的头部创建一个带有元组的新元组列表。
现在我正在做
list.foldLeft(List[(String, Int)]())((ll:List[(String, Int)], str:String) =>
if (str == ll.head._1) (str, ll.head._2 + 1) :: ll.tail.head
else (str, 1) :: ll.head)
但是我得到的错误是元组没有::运算符。
答案 0 :(得分:1)
如果我理解你要做什么,原因是你试图使用列表尾部的第一个元素而不是尾部本身作为{{1的右手参数}}
你应该可以使用类似的东西:
::
然而,你会在试图占据空列表的头部时遇到错误。所以一个完整的工作版本就像
list.foldLeft(List[(String, Int)]())((ll, str) =>
if (str == ll.head._1) (str, ll.head._2 + 1) :: ll.tail
else (str, 1) :: ll)