【发布时间】:2017-08-30 08:05:21
【问题描述】:
我有一个元组列表,如下所示
List((a,1), (a,2), (b,2), (b,1))
我想从上面的列表中创建一个如下列表
List((a,2), (b,2))
只有一个第一个元素和 MAX 个第二个元素。我怎样才能简洁地做到这一点?
【问题讨论】:
-
试试这个 list.groupBy(._1).map { case (common, lst) => (common, lst.reduce( max _)) }
-
那么,你在尝试的时候遇到了什么问题?
-
@Dima 在我输入完整评论之前按下回车键。这是我尝试错误时得到的结果:value max is not a member of (String, Int)
-
这行得通 myList.groupBy(._1).map {case (common, lst) => lst.maxBy(._2) }.toList