0

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

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

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

4

1 回答 1

1

你的意思是:

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

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

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

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

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

mu.map(_._2).max  // 9
于 2012-09-26T20:38:50.047 回答