我想用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相关问答推荐

如何在HStack中均匀分布视图?

如何消除SwiftUI中SF符号的填充

减go 用SWIFT struct 填充的NSCountedSet

NSWindow中以编程方式创建的TextField快捷方式与SwiftUI

在SWIFTUI&39;S视图修改器中使用等待关键字

正在接收具有不完整数据错误的URL请求

同时具有每个文本的标识符的文本组的可扩展性标识符

如何隐藏集合视图中特定的单元格,以避免出现空白空间?

Swift Property Wrappers-Initialization 失败并显示无法将‘Double’类型的值转换为预期的参数类型

我如何读取并通知可可 macos 中某个类的计算(computed)属性?

Swift Combine:如何在保留发布者结果顺序的同时进行收集?

UIButton 配置不更新按钮标题

RxSwift 提高性能

如何从另一个 swift 文件中调用函数

(SwiftLint)如果有正文,如何编写规则(可能是自定义),在{之后总是\n(换行)?

我将哪种 Swift 数据类型用于货币

'#selector' 的参数不引用 '@objc' 方法、属性或初始化程序

swift 3 如何获取明天和昨天的日期(注意特殊情况)新月或新年

Xcode-beta 8. 无法创建核心数据

静态成员不能用于类型的实例