喜重指数字典我有一个类型的词典:删除和斯威夫特
1:[[12.342,34.234],[....,...],....] 2:[[......],[....]]....
现在我想知道是否有功能进行删除细节键通讯员价值和功能例如,如果我将值记者删除到密钥2,则密钥3应该变为密钥2等等。
喜重指数字典我有一个类型的词典:删除和斯威夫特
1:[[12.342,34.234],[....,...],....] 2:[[......],[....]]....
现在我想知道是否有功能进行删除细节键通讯员价值和功能例如,如果我将值记者删除到密钥2,则密钥3应该变为密钥2等等。
我认为你需要使用一个数组,而不是一个字典
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。
要删除一个键和值,只需要dict[key] = nil
。
至于重新索引,字典键没有任何特定的顺序,并将所有的值转移到不同的键是不是如何设计字典的工作。如果这对你很重要,也许你应该使用类似于一对数组的东西。
词典没有排序。这意味着“密钥3”变为“密钥2”不是受支持的方案。如果按键的顺序与插入它们的顺序相同,那么到目前为止您已经很幸运了,因为这绝对不能保证。
如果你想要排序并且你的键/值对的列表很小(大约是一百个左右),你应该考虑使用一个数组元组:[(Key, Value)]
。这保证了订购。如果你需要比那个更快的键或更快的键查找,你应该找到一种方法来定义键之间的顺序关系(例如,你可以说应该总是在其他键之后),并使用排序的集合,如this one。
谢谢我以为在命令字典处使用* .sorted {($ 1.key> $ 0.key)}函数 –
如果键是一个数字,为什么不只是使用一个数组,并通过索引访问它呢? – vikingosegundo
他们是坐标数组,每个数组区分一条路线@vikingosegundo –
为什么你需要一个字典在他们周围,有int键? – vikingosegundo