如何对下面的词典数组进行排序,以使每个字典的键都按升序排列,而又不创建任何新内容(使用.sort而不是.sorted)?非常感谢您的帮助,非常感谢!
当前词典数组:
我想要的东西:
无效的代码:
var arrayOfDicts = [[2: 0, 3: 0, 1: 0], [2: 0, 1: 0], [2: 0, 1: 0], [2: 0, 1: 0]]
arrayOfDicts.sort(by: { $0.keys.first! > $1.keys.first! })
print(arrayOfDicts)
// prints [[2: 0, 3: 0, 1: 0], [2: 0, 1: 0], [2: 0, 1: 0], [2: 0, 1: 0]]
答案 0 :(得分:2)
以便每个字典的键都按升序
[[1: 0, 2: 0, 3: 0], [1: 0, 2: 0], [1: 0, 2: 0], [1: 0, 2: 0]]
说“使每本字典的键升序”意味着您要对每本实际字典进行排序(这就是“我想”)。但是字典无法排序。这个概念毫无意义,因为字典没有无序。其元素(或键)的打印顺序是随机的。
所以您要描述的是不可能的。你不能想要它。您可能会认为您想要的,但您不想要。那样对你没有好处; “排序的”字典(如果存在的话)不会改变任何内容,因为它不会影响字典的工作,即按某种顺序列出元素而不是检索值通过键。