[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: "ten", value: 10), (key: "seven", value: 7), (key: "three", value: 3), (key: "two", value: 2), (key: "zero", value: 0)]

コメント

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