我有两个Int数组,例如:
array1=[1,2,3,4]作为Int
array2=[10,20,30,40]为整数
为了工作,我需要创建Dictionary,其中Key是array1中的元素,Value是array2中的元素,在我的示例中-[1:10,2:20,3:30,4:40]是[Int:Int]。
所以,当我创建循环时:
for i in 0..<arrayOfKeys.count {
dictionaryOfData[arrayOfKeys[i]] = arrayOfValues[i]
}
我只看到最后一个[4:40],但我知道我必须有4个键值的字典。
请给我个建议,告诉我怎么迅速做?!
upd,我发现我的问题-钥匙必须是唯一的!所以,非常感谢你的回答,我很快就知道了
最佳答案
我脑子里想不出什么解决办法:
Init数组+Dict
let arrayOfValues = [1,2,3,4]
let arrayOfKeys = [1,2,3,4]
var arrayOfDict = [Int:Int]()
对于循环解决方案:
for i in 0..<arrayOfKeys.count {
if i < arrayOfValues.count {
let key = arrayOfKeys[i]
let value = arrayOfValues[i]
arrayOfDict[key] = value
}
}
使用zip方法解决方案:
for (key, value) in zip(arrayOfValues, arrayOfKeys) {
arrayOfDict[key] = value
}
来自苹果文档:
zip:由两个底层序列构建的成对序列,其中
第i对元素是每个底层的第i个元素
序列(iOS(9.0及更高版本))