我使用嵌套字典数据结构来跟踪一堆 NSLayoutConstraint
,具体来说,[String: [String: NSLayoutConstraint]]
。但对于我的情况,让我们考虑以下更简单的示例:
var myNestedDictionary = [String: [Int: Double]]()
myNestedDictionary["squares"] = [1: 1.0, 2: 4.0, 3: 9.0, 4: 16.0]
myNestedDictionary["cubes"] = [1: 1.0, 2: 8.0, 3: 27.0, 4: 64.0]
myNestedDictionary["factorials"] = [1: 1.0, 2: 2.0, 3: 6.0, 4: 24.0]
如何将所有值提取到[Double]
中,而不是键值对一个字典条目,例如如何从 myNestedDictionary["cubes"]
获取 [1.0, 8.0, 27.0, 64.0]
?
最佳答案
最简单的方法是将字典映射到数组:
let values = myNestedDictionary["cubes"]?.map({$0.1})
这不一定遵循键所暗示的顺序,因为字典是无序的。如果你想保持升序,你可以先对键进行排序,然后在映射中使用排序后的键:
let values = myNestedDictionary["cubes"]?.keys.sort().flatMap {myNestedDictionary["cubes"]![$0]!}
关于swift - 访问 Swift 嵌套字典中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36172154/