[Swift]辞書(Dictionary)の値を昇順にソートするには?

Swift

どうも、ちょげ(@chogetarou)です。

辞書(Dictionary)の値(value)を昇順に並び替える方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

辞書(Dictionary)の値(value)を昇順に並び替えるには、sorted()を使います。

まず、辞書からsorted()を呼び出します。

そして、sorted()のクロージャーで「$0.value < $1.value」を返します。

//dict=対象の辞書
let result = dict.sorted { $0.value < $1.value }

上記のsorted()は、辞書の値を昇順にソートしたタプルの配列を生成します。

Swiftの辞書には順番がなく、辞書のままではソートできません。

なので、ソートしたい場合は、順番のある配列に変換する必要があります。

スポンサーリンク

使用例

import Foundation

let nums = [
    "two": 2,
    "seven": 7,
    "zero": 0,
    "three": 3, 
    "ten": 10
]

let result = nums.sorted { $0.value < $1.value }

print(result)
出力:
[(key: "zero", value: 0), (key: "two", value: 2), (key: "three", value: 3), (key: "seven", value: 7), (key: "ten", value: 10)]

コメント

タイトルとURLをコピーしました