反转Swift字典中值的键,收集重复值
1个月前 • 69次点击 • 来自 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参数。
标签