如何在 Scala 中按键对字典进行排序?
How can I sort a dictionary by key in Scala?
在 Python (this question for example) 中按键或值对 Map 进行排序很容易。
我想在 Scala 中做同样的事情,假设我有一个像这样的字典:
val A= Map(0 -> 1.0, 3 -> 5.0,2->7.0)
我想得到一个元组列表,对应于按键排序的映射:
val A_sorted= List((0,1.0),(2,7.0),(3,5.0))
谢谢!
Map(0 -> 1.0, 3 -> 5.0,2->7.0).toList.sortBy(_._1)
res1: List[(Int, Double)] = List((0,1.0), (2,7.0), (3,5.0))
一种方法是使用 :_* 语法输出序列的内容,然后
将您的地图转换为 sortedMap:
val a = Map(0 -> 1.0, 3 -> 5.0,2->7.0)
val sortedA = scala.collection.immutable.SortedMap(a.toList:_*)
如果需要,您可以将其转换为列表:
sortedA.toList
足以
A.toList.sorted
双元排序时,第一个坐标先排序;在平等的情况下,使用第二个坐标。
请注意,在 Scala 标签中,首字母大写的约定表示类型(或 类)。
在 Python (this question for example) 中按键或值对 Map 进行排序很容易。
我想在 Scala 中做同样的事情,假设我有一个像这样的字典:
val A= Map(0 -> 1.0, 3 -> 5.0,2->7.0)
我想得到一个元组列表,对应于按键排序的映射:
val A_sorted= List((0,1.0),(2,7.0),(3,5.0))
谢谢!
Map(0 -> 1.0, 3 -> 5.0,2->7.0).toList.sortBy(_._1)
res1: List[(Int, Double)] = List((0,1.0), (2,7.0), (3,5.0))
一种方法是使用 :_* 语法输出序列的内容,然后 将您的地图转换为 sortedMap:
val a = Map(0 -> 1.0, 3 -> 5.0,2->7.0)
val sortedA = scala.collection.immutable.SortedMap(a.toList:_*)
如果需要,您可以将其转换为列表:
sortedA.toList
足以
A.toList.sorted
双元排序时,第一个坐标先排序;在平等的情况下,使用第二个坐标。
请注意,在 Scala 标签中,首字母大写的约定表示类型(或 类)。