我有一个字典,如下所示:[String:Int]
我希望能够将字典中的整数从最大到最小排序,并保持键与数字相同。我看过的所有地方都说只能对这样的数组进行排序。
谢谢!
答案 0 :(得分:0)
您不能对字典本身进行排序。
您需要一个单独的数据结构,其中包含字典的排序表示。例如:
let dict = ["A": 1, "B": 2]
let sortedTuples1 = dict.sorted{ $0.value < $1.value }
let sortedTuples2: [(String, Int)] = dict.sorted(by: { (element0, element1) in
return element0.value < element1.value
})
第一个版本sortedTuples1
只是sortedTuples2
的简短语法。另请参见Sequence.sorted
和closures in Swift。
注意:元组的排序Array
与字典无关,并且如果删除或添加一些元素,则更改不会同时反映在两个数据结构中。您将必须手动执行此操作。