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


1年前 864次点击 来自 移动端

标签: Swift

有以下词典:

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参数。

Made with in Shangrao,China By Devler.

Copyright © Devler 2012 - 2022

赣ICP备19009883号-1