我有字典
var dict: [String: [String]] = ["key1": ["1", "111"], "key2": ["22", "222"]]
我如何使用地图功能将其转换为[String: [Int]]
["key1": [1, 111], "key2": [22, 222]]
不是通过使用for
或forEach
循环
斯威夫特4
您可以使用mapValues
(在Swift 4中引入)和map
数组,如下所示
let newDict = dict.mapValues { value in
value.map { Int($0)!}
}
请注意,如果数组中的值无法转换为Int
s,程序将崩溃。
斯威夫特3
然而,在Swift 3中,没有mapValues
。幸运的是,有了这个扩展名(来源:https://stackoverflow.com/a/24219069):
extension Dictionary {
init(_ pairs: [Element]) {
self.init()
for (k, v) in pairs {
self[k] = v
}
}
}
你可以写
let newDict = Dictionary(dict.map { (key, value) in
(key, value.map{Int($0)!})
})
这也将达到预期的效果。