Swift:使用array1中的键和array2中的值构建一个字典

时间:2014-12-19 13:03:15

标签: swift

以下是2个数组:countriesVotedKeys和dictionnaryCountriesVotes。

我需要构建一个字典,其键是countriesVotedKeys的所有项目,其值是dictionnaryCountriesVotes中的所有项目。两个数组都包含相同数量的元素。 我尝试过很多东西,但都没有达到理想的效果。

     for value in self.countriesVotedValues! {
        for key in self.countriesVotedKeys! {
            self.dictionnaryCountriesVotes![key] = value
        }
    }

我可以清楚地看到为什么这段代码会产生错误的结果:第二个数组在第一个数组的每次迭代中都是迭代的。我也尝试了经典的var i = 0,var j = 0; ......但似乎swift中不允许使用这种语法。 简而言之,我被困住了。试。

2 个答案:

答案 0 :(得分:5)

Swift 4

let keys = ["key1", "key2", "key3"]
let values = [100, 200, 300]

let dict = Dictionary(uniqueKeysWithValues: zip(keys, values))

print(dict)   // "[key1: 100, key3: 300, key2: 200]"

Swift 3

var dict: [String: Int] = [:]

for i in 0..<keys.count {
    dict[keys[i]] = values[i]
}

答案 1 :(得分:2)

使用NSDictionary的便利初始化程序:

let keys = ["a", "b", "c"]
let values = [1,2,3]

var dict = NSDictionary(objects: values, forKeys: keys) as [String: Int]