我正在使用嵌套的字典数据结构来跟踪一堆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]中,例如如何从[1.0, 8.0, 27.0, 64.0]获取myNestedDictionary["cubes"]

最佳答案

最简单的方法是将字典映射到数组:

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/

10-10 09:39
查看更多