Swift Array / Dictionary没有按预期顺序打印回

时间:2019-05-13 02:06:42

标签: arrays swift dictionary

我正在尝试将两个swift数组组合成一个简单的swift字典。我是个新手,但很快就知道了(但是知道相当多的python),并且遇到了一些我认为很奇怪的东西。当我运行下面的代码时,我得到的字典与预期的一样,但是,如果我重新运行代码,则key:value对将以不同的顺序出现。我知道迅速的字典应该是无序的,但这是否意味着每次我去遍历字典的key:value对时,这些对的顺序可能会改变吗?换句话说,是否不可能在最终字典产品中保留组成字典的两个初始数组的顺序?


let cities: Array<String> = ["Paris", "Mexico City", "Rome"]
let countries: Array<String> = ["France", "Mexico", "Italy"]

var newCountrydict : Dictionary<String, String> = [:]
for (city,country) in zip(cities,countries){
    newCountrydict[country] = city

}

newCountrydict

1 个答案:

答案 0 :(得分:3)

swift docs中“词典”下:

  

与数组中的项目不同,字典中的项目没有指定的顺序。当您需要根据其标识符查找值时,可以使用字典,就像使用现实世界的字典来查找特定单词的定义一样。

如果迅速使用字典,则无法保留顺序。

在同一文档中,它说:

  

数组是值的有序集合。集是唯一值的无序集合。字典是键-值关联的无序集合。

我建议您通读official documents