在 Python 中我可以這樣做:
in_dd = {"aaa": 1, "bbb": 7, "zzz": 3, "hhh": 9, "ggg": 10, "ccc": 3}
out_ll = ['ggg', 'hhh', 'bbb', 'aaa', 'ccc', 'zzz']
所以,我想按值降序排列鍵,同時考慮到排序值,鍵按升序排列
我怎樣才能在 Scala 中做到這一點?
在 Scala 中我知道我可以做到:
val m = Map("aaa" -> 3, "bbb" -> 7, "zzz" -> 3, "hhh" -> 9, "ggg" -> 10, "ccc" -> 3)
m.toSeq.sortWith(_._2 > _._2)
但我不知道如何按兩種情況排序。
編輯:
我也嘗試過這種方法,但它沒有回傳所需的結果:
m.toSeq.sortWith((x,y) => x._2 > y._2 && x._1 < y._1).map(_.1)
List((ggg,10), (hhh,9), (bbb,7), (ccc,3), (zzz,3), (aaa,3))
注意它應該是 aaa,ccc,zzz
uj5u.com熱心網友回復:
在 Scala 中你可以使用:
m.toSeq.sortBy(a => (a._2, a._1) )(Ordering.Tuple2(Ordering.Int.reverse, Ordering.String.reverse))
為了List((ggg,10), (hhh,9), (bbb,7), (zzz,3), (ccc,3), (aaa,3))
和
m.toSeq.sortBy(a => (-a._2, a._1) )
為了List((ggg,10), (hhh,9), (bbb,7), (aaa,3), (ccc,3), (zzz,3))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/536741.html
上一篇:我有一個List[(List[A],List[R])]-分別由物件A和R的兩個串列組成的元組串列。如何為每個串列[A]“展平”串列[R]?
