如何从2个元组列表中的最后一个条目中检索第二个值?

时间:2012-09-26 20:37:04

标签: scala map tuples

我使用地图扫描输入文件并生成字数。 地图键是单词,值是单词的出现。 我将地图转换为列表并按值递增排序。 因此,我有一个包含2个元组的列表,列表的第一个位置中出现频率最低的单词,以及列表最后位置中最常出现的单词。

我知道我可以使用myList.last轻松地将2tuple放在列表的最后位置,然后使用myTuple._2访问结果的第二个元素

可以在一行代码中完成吗? 我想尽可能简洁。

1 个答案:

答案 0 :(得分:1)

你的意思是:

val muList = List(("aardvark", 1), ("cow", 5), ("dog", 9))
muList.last._2  // 9

这将获得muList的最后一个元素,然后在那里找到元组中的第二个项目。

但是您不需要转换为List并进行排序等等。您可以从Map获取max-count元素,它会更快:

val mu = Map("aardvark" -> 1, "dog" -> 9, "cow" -> 5)
val highestCountPair = mu.maxBy(_._2)   // ("dog",9)
highestCountPair._2                     // 9

或者,如果你根本不关心这个词:

mu.map(_._2).max  // 9