亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按鍵對字典排序

按鍵對字典排序

我想在Swift中對字典排序。我有一本字典,例如:"A" => Array[]"Z" => Array[]"D" => Array[]等,我希望它像"A" => Array[]"D" => Array[]"Z" => Array[]等等我在SO上嘗試了許多解決方案,但沒有人為我工作。我正在使用XCode6 Beta 5,在它上面有一些正在給編譯器錯誤,在一些解決方案中有例外。因此,任何可以發布字典排序工作副本的人。
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

let dictionary = [

    "A" : [1, 2],

    "Z" : [3, 4],

    "D" : [5, 6]

]


let sortedKeys = Array(dictionary.keys).sorted(<) // ["A", "D", "Z"]

編輯:


上面代碼中的排序數組僅包含鍵,而值必須從原始字典中檢索。但是,'Dictionary'也是'CollectionType'(鍵,值)對的一對,我們可以使用全局'sorted'函數來獲取包含鍵和值的排序數組,如下所示:


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 。


查看完整回答
反對 回復 2019-10-08
?
滄海一幻覺

TA貢獻1824條經驗 獲得超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 })

注意:


你們當中有些人似乎對結果數組不是字典感到驚訝。字典無法排序!產生的數據類型是一個排序數組,就像@Ivica的答案一樣。


查看完整回答
反對 回復 2019-10-08
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超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)")

}


查看完整回答
反對 回復 2019-10-08
  • 3 回答
  • 0 關注
  • 685 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號