どうも、ちょげ(@chogetarou)です。
Swiftで辞書をソートする方法を紹介します。
方法
辞書をソートするには、sortedメソッドを使います。
キーでソート
まず、「dic.sorted(by : {})」のように、辞書のsortedメソッドを呼び出します。
そして、引数「by」のクロージャ内でkeyを比較する条件式を指定します。
条件に使う要素の2つのキーは、「$0.key」と「$1.key」で取得することができます。
dic.sorted(by: { $0.key < $1.key})
使用例
var dic = [
"D" : 1,
"C" : 2,
"A" : 3,
"B" : 4,
]
print(dic.sorted(by: { $0.key < $1.key}))
//出力:[
// (key: "A", value: 3),
// (key: "B", value: 4),
// (key: "C", value: 2),
// (key: "D", value: 1)
// ]
値でソート
まず、「dic.sorted(by : {})」のように、辞書のsortedメソッドを呼び出します。
そして、引数「by」のクロージャ内で値を比較する条件式を指定します。
条件に使う要素の2つの値は、「$0.value」と「$1.value」で取得することができます。
dic.sorted(by: { $0.value < $1.value})
使用例
var dic = [
"D" : 4,
"C" : 3,
"A" : 1,
"B" : 2,
]
print(dic.sorted(by: { $0.value < $1.value}))
まとめ
辞書をソートするには、sortedメソッドを使います。
sortedメソッド内のクロージャーで、キーを比較すればキーでソート、値を比較すれば値でソートできます。
コメント