首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按键对字典进行排序

按键对字典进行排序
EN

Stack Overflow用户
提问于 2014-08-19 14:47:19
回答 8查看 148.4K关注 0票数 148

我想在Swift中对字典进行排序。我有一本字典,比如:

代码语言:javascript
复制
"A" => Array[]
"Z" => Array[]
"D" => Array[]

等等。我希望它像这样

代码语言:javascript
复制
"A" => Array[]
"D" => Array[]
"Z" => Array[]

等。

我已经尝试了许多解决方案,但没有人为我工作。我正在使用XCode6 Beta5,在它上面,一些人给出了编译器错误,一些解决方案给出了异常。所以,任何人谁可以张贴字典排序的工作副本。

EN

回答 8

Stack Overflow用户

发布于 2015-09-04 03:03:55

需要说明的是,您不能对字典进行排序。但是你可以输出一个数组,这是可排序的。

Swift 2.0

Ivica M答案的更新版本:

代码语言:javascript
复制
let wordDict = [
     "A" : [1, 2],
     "Z" : [3, 4],
     "D" : [5, 6]
]

let sortedDict = wordDict.sort { $0.0 < $1.0 }
print("\(sortedDict)") // 

Swift 3

代码语言:javascript
复制
wordDict.sorted(by: { $0.0 < $1.0 })
票数 129
EN

Stack Overflow用户

发布于 2017-11-29 13:24:19

我尝试了上面的所有方法,简而言之,你所需要的就是

代码语言:javascript
复制
let sorted = dictionary.sorted { $0.key < $1.key }
let keysArraySorted = Array(sorted.map({ $0.key }))
let valuesArraySorted = Array(sorted.map({ $0.value }))
票数 21
EN

Stack Overflow用户

发布于 2018-04-12 22:28:15

在swift 4中,你可以写得更聪明:

代码语言:javascript
复制
let d = [ 1 : "hello", 2 : "bye", -1 : "foo" ]
d = [Int : String](uniqueKeysWithValues: d.sorted{ $0.key < $1.key })
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25377177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档