我想用Swift分类一本字典.我有一本字典,比如:

"A" => Array[]
"Z" => Array[]
"D" => Array[]

等等,我希望它是这样的

"A" => Array[]
"D" => Array[]
"Z" => Array[]

我try 了很多解决方案,但没有人为我工作.我使用的是XCode6 Beta 5,其中一些给出了编译器错误,一些解决方案给出了异常.所以任何人都可以发布字典排序的工作副本.

推荐答案

let dictionary = [
    "A" : [1, 2],
    "Z" : [3, 4],
    "D" : [5, 6]
]

let sortedKeys = Array(dictionary.keys).sorted(<) // ["A", "D", "Z"]

EDIT:

上述代码中的排序数组只包含键,而值必须从原始字典中检索.然而,'Dictionary'也是'CollectionType'个(键,值)对,我们可以使用global 'sorted'函数获得包含键和值的排序数组,如下所示:

let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }
println(sortedKeysAndValues) // [(A, [1, 2]), (D, [5, 6]), (Z, [3, 4])]

EDIT2:目前,每月变化的Swift语法更倾向于

let sortedKeys = Array(dictionary.keys).sort(<) // ["A", "D", "Z"]

全球sorted强已被弃用.

Swift相关问答推荐

Vapor, fluent 使用 PostgreSQL 保存/创建复杂模型

在 Swift 中,如何查看 Process() 传递给 shell 的字符串?

为什么 `map(foo)` 和 `map{ foo($0) }` 返回不同的结果?

macOS 守护进程应该由“Command Line Tool”Xcode 模板制作吗?

如何在不阻塞 UI 更新的情况下使用 Swift Concurrency 在后台执行 CPU 密集型任务?

符合协议要求委托变量在 ios13 中可用

如何使被拖动的对象成为前景(foreground)对象

如何从 Swift 中的字符串中删除变音符号?

SwiftUI:如何绘制填充和描边的形状?

App Tracking Transparency 如何影响显示广告的应用程序? - IDFA iOS14

iOS 和 FirebaseCrashlytics

SwiftUI HStack 以等间距填充整个宽度

Swift 5.1 编译器无法导入使用 Swift 5.0.1 编译的模块

在 SwiftUI 中设置切换 colored颜色

SwiftUI 中 NavigationView 导航栏的自定义后退按钮

如何将应用程序与 iOS 联系人应用程序集成?

在 SwiftUI 中水平居中视图

在现有的 UIKit 应用程序中包含 SwiftUI 视图

SWIFT_VERSION 的值不能为空

哪些版本的 Xcode 支持哪些版本的 Swift?