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