在Swift中删除并重新索引字典

时间:2017-06-13 17:28:21

标签: arrays swift dictionary indexing

您好我有一个类型字典:

1:[[12.342,34.234],[....,...],....] 2:[[......],[....]]....

现在我想知道是否有删除细节键和通讯符值的函数,以及如果我删除键2的值对应键的示例重新索引它的函数,键3应该成为键2等等。

3 个答案:

答案 0 :(得分:1)

要删除密钥和值,只需执行dict[key] = nil

至于重新索引,字典键没有任何特定的顺序,并且将所有值移到不同的键上并不是字典的设计工作方式。如果这对你很重要,也许你应该使用类似于一对数组的东西。

答案 1 :(得分:1)

不订购字典。这意味着“密钥3”变为“密钥2”不是受支持的方案。如果按键的顺序与你插入的顺序相同,那么你到目前为止一直很幸运,因为这绝对不能保证。

如果您想要排序并且您的键/值对列表很小(大约一百个很小),您应该考虑使用数组元组:[(Key, Value)]。这保证了订购。如果你需要比那更大或更快的键查找的东西,你应该找到一种方法来定义键之间的排序关系(这样你可以说一个应该总是在一些其他键之后),并使用像{{3这样的排序集合}}

答案 2 :(得分:1)

我认为您需要使用数组,而不是字典

var elms: [[[Double]]] = [
    [[0.1],[0.2, 0.3]],
    [[0.4], [0.5]],
    [[0.6]],
]

elms.remove(at: 1) // remove the second element

print(elms)

[
    [[0.10000000000000001], [0.20000000000000001, 0.29999999999999999]],
    [[0.59999999999999998]]
]
  

是输出值与原始值略有different