我有类型字典:Dictionary<String,Dictionary<String,Int64>>
myDict["DictA"]!["ElementB"] = 8
myDict["DictA"]!["ElementC"] = 16
myDict["DictA"]!["ElementA"] = 32我想按字母顺序排列我的第二本字典:
myDict["DictA"]!["ElementA"] = 32
myDict["DictA"]!["ElementB"] = 8
myDict["DictA"]!["ElementC"] = 16并按价值计算:
myDict["DictA"]!["ElementA"] = 32
myDict["DictA"]!["ElementC"] = 16
myDict["DictA"]!["ElementB"] = 8我需要arrangeAlphabetically(myDict:Dictionary<String, Int64>)->Dictionary<String, Int64>类型的函数和另一个arrangeByValue.How,它会完成吗?
发布于 2015-02-13 08:20:12
Dictionary本质上是一种无序集合类型。同时,它是一个(Key, Value)对元组序列。你可以得到这些元组的sorted()。
var myDict:[String:[String:Int64]] = ["DictA":[:]]
myDict["DictA"]!["ElementA"] = 32
myDict["DictA"]!["ElementC"] = 16
myDict["DictA"]!["ElementB"] = 8
let sortedByKeyAsc = sorted(myDict["DictA"]!) { $0.0 < $1.0 } // by keys ascending
let sortedByValDesc = sorted(myDict["DictA"]!) { $0.1 > $1.1 } // by values descending
println(sortedByKeyAsc) // -> [(ElementA, 32), (ElementB, 8), (ElementC, 16)]
println(sortedByValDesc) // -> [(ElementA, 32), (ElementC, 16), (ElementB, 8)]发布于 2015-02-13 07:03:53
字典本质上是无序的,所以用几句话来说:你不能。
当数组被排序时,您可以按所需的顺序将值放入数组中。
https://stackoverflow.com/questions/28493852
复制相似问题