反转Swift字典中值的键,收集重复值

4个月前 252次点击 来自 iOS

有以下词典:

let dict = ["key1": "v1", "key2": "v1", "key3": "v2"]

将值交换为键,如何在不使用for循环(即更优雅)的情况下获得以下值:

result = ["v1": ["key1", "key2"], "v2": ["key3"]]

答案

使用分组初始值设定项:

let dict = ["key1": "v1", "key2": "v1", "key3": "v2"]
let result = Dictionary(grouping: dict.keys.sorted(), by: { dict[$0]! })

如果结果数组中键的顺序不重要,则可以删除.sorted()。
强制解包在这种情况下是安全的,因为我们将现有的字典密钥作为$0参数。

Card image cap
开发者雷

尘世间一个小小的开发者,每天增加一些无聊的知识,就不会无聊了

要加油~~~

技术文档 >> 系列应用 >>
热推应用
Let'sLearnSwift
学习Swift的入门教程
PyPie
Python is as good as Pie
标签