3 回答

TA貢獻1875條經(jīng)驗 獲得超3個贊
let dictionary = [
"A" : [1, 2],
"Z" : [3, 4],
"D" : [5, 6]
]
let sortedKeys = Array(dictionary.keys).sorted(<) // ["A", "D", "Z"]
編輯:
上面代碼中的排序數(shù)組僅包含鍵,而值必須從原始字典中檢索。但是,'Dictionary'也是'CollectionType'(鍵,值)對的一對,我們可以使用全局'sorted'函數(shù)來獲取包含鍵和值的排序數(shù)組,如下所示:
let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }
println(sortedKeysAndValues) // [(A, [1, 2]), (D, [5, 6]), (Z, [3, 4])]
EDIT2:目前更喜歡每月更改一次的Swift語法
let sortedKeys = Array(dictionary.keys).sort(<) // ["A", "D", "Z"]
sorted不推薦使用global 。

TA貢獻1824條經(jīng)驗 獲得超5個贊
斯威夫特2.0
Ivica M的答案的更新版本:
let wordDict = [
"A" : [1, 2],
"Z" : [3, 4],
"D" : [5, 6]
]
let sortedDict = wordDict.sort { $0.0 < $1.0 }
print("\(sortedDict)") //
迅捷3
wordDict.sorted(by: { $0.0 < $1.0 })
注意:
你們當(dāng)中有些人似乎對結(jié)果數(shù)組不是字典感到驚訝。字典無法排序!產(chǎn)生的數(shù)據(jù)類型是一個排序數(shù)組,就像@Ivica的答案一樣。

TA貢獻1810條經(jīng)驗 獲得超4個贊
如果要按鍵排序順序遍歷鍵和值,則此格式非常簡潔
let d = [
"A" : [1, 2],
"Z" : [3, 4],
"D" : [5, 6]
]
for (k,v) in Array(d).sorted({$0.0 < $1.0}) {
println("\(k):\(v)")
}
添加回答
舉報