一尘不染

快速按值排序字典

swift

我有一本字典,[String : Double]其中包含以下数据:

Museum1 : 8785.8971799638
Museum2 : 34420.9643422388
Museum3 : 826.467789130732
Museum4 : 304120.342151219

我想按double值对字典排序。我做了一些研究,但所有示例均不支持当前版本的Swift

我试过在Swift中按值使用SortDictionary中的这段代码:

for (k,v) in Array(self.museumsDic).sorted({$0.0 < $1.0}) {
    println("\(k):\(v)")
}

但这是行不通的。如何按字典值对字典排序?


阅读 222

收藏
2020-07-07

共1个答案

一尘不染

目前尚不清楚您的期望是什么。确实没有排序字典这样的东西。您的代码基本上是正确的,但括号位置错误。我尝试了这个:

let d = ["Museum1":8785.8971799638,
"Museum2":34420.9643422388,
"Museum3":826.467789130732,
"Museum4":304120.342151219]

for (k,v) in (Array(d).sorted {$0.1 < $1.1}) {
    println("\(k):\(v)")
}

结果:

Museum3:826.467789130732
Museum1:8785.8971799638
Museum2:34420.9643422388
Museum4:304120.342151219

如果您认为这是错误的,则需要解释原因。

2020-07-07