Swiftで辞書(dictionary)からランダムにキーと値を取得する方法について記載します。
目次
ランダムにキーと値を取得する方法
randomElement や first メソッドを使用します。
1. randomElement メソッド
ランダムにキーと値のペアを1つ返します。
辞書が空の場合は、nil を返します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
let fruitsPrice = [ "apple": "100", "orange": "200", "banana": "300" ] // randomElementメソッドの戻り値は、オプショナルな辞書型なのでアンラップして使用する if let randomDict = fruitsPrice.randomElement() { print( "key : \(randomDict.key)、value : \(randomDict.value)" ) } // 1回目の結果 // key : orange、value : 200 // 2回目の結果 // key : apple、value : 100 // 空の辞書からは nil が返される let emptyDict: [String:String] = [:] let dict = emptyDict.randomElement() print( dict ) // nil |
2. first メソッド
メソッド名からは、最初のキーと値のペア を返しそうですが、辞書型は順序を持たないので、randomElement 同様に実行毎に結果が異なります。(連続で同じキーと値が返されることもあります)
辞書が空の場合は、nil を返します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
let fruitsPrice = [ "apple": "100", "orange": "200", "banana": "300" ] // firstメソッドの戻り値は、オプショナルな辞書型なのでアンラップして使用する if let firstDict = fruitsPrice.first { print( "key : \(firstDict.key)、value : \(firstDict.value)" ) } // 1回目の結果 // key : orange、value : 200 // 2回目の結果 // key : banana、value : 300 // 空の辞書からは nil が返される let emptyDict: [String:String] = [:] let dict = emptyDict.first print( dict ) // nil |