我想在Swift中对字典进行排序。我有一本字典,比如:
"A" => Array[]
"Z" => Array[]
"D" => Array[]
等等。我希望它像这样
"A" => Array[]
"D" => Array[]
"Z" => Array[]
等。
我已经尝试了许多解决方案,但没有人为我工作。我正在使用XCode6 Beta5,在它上面,一些人给出了编译器错误,一些解决方案给出了异常。所以,任何人谁可以张贴字典排序的工作副本。
发布于 2015-09-04 03:03:55
需要说明的是,您不能对字典进行排序。但是你可以输出一个数组,这是可排序的。
Swift 2.0
Ivica M答案的更新版本:
let wordDict = [
"A" : [1, 2],
"Z" : [3, 4],
"D" : [5, 6]
]
let sortedDict = wordDict.sort { $0.0 < $1.0 }
print("\(sortedDict)") //
Swift 3
wordDict.sorted(by: { $0.0 < $1.0 })
发布于 2017-11-29 13:24:19
我尝试了上面的所有方法,简而言之,你所需要的就是
let sorted = dictionary.sorted { $0.key < $1.key }
let keysArraySorted = Array(sorted.map({ $0.key }))
let valuesArraySorted = Array(sorted.map({ $0.value }))
发布于 2018-04-12 22:28:15
在swift 4中,你可以写得更聪明:
let d = [ 1 : "hello", 2 : "bye", -1 : "foo" ]
d = [Int : String](uniqueKeysWithValues: d.sorted{ $0.key < $1.key })
https://stackoverflow.com/questions/25377177
复制相似问题