[Swift]辞書(Dictionary)の要素同士を結合して文字列に変換するには?

プログラミング・IT

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

辞書(Dictionary)の要素同士を結合して文字列に変換する方法を紹介します。

スポンサーリンク

方法

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

辞書(Dictionary)の要素同士を結合して文字列に変換する方法は、3つあります。

キー(key)同士を結合

1つ目は、キー(key)同士を結合する方法です。

まず、辞書のkeysにアクセスします。

keysの結果からjoined()を呼び出します。

そして、joined()の引数「separator」に区切り文字を指定します。

//dict=対象の辞書, sep=区切り文字
let result = dict.keys.joined(separator: sep)

上記のjoined()は、辞書のキーを結合した文字列に変換します。

使用例

import Foundation

let nums = [
    "one": 1,
    "two": 2,
    "three": 3, 
    "four": 4,
    "five": 5
]

let result = nums.keys.joined(separator: ", ")

print(result)
出力:
four, one, two, three, five

値(value)同士を結合

2つ目は、値(value)同士を結合する方法です。

まず、辞書のvaluesにアクセスします。

valuesの結果からjoined()を呼び出します。

そして、joined()の引数「separator」に区切り文字を指定します。

//dict=対象の辞書, sep=区切り文字
let result = dict.values.joined(separator: sep)

上記のjoined()は、辞書の値(value)を結合した文字列に変換します。

使用例

import Foundation

let nums = [
    "one": "いち",
    "two": "に",
    "three": "さん", 
    "four": "よん",
    "five": "ご"
]

let result = nums.values.joined(separator: ", ")

print(result)
出力:
さん, いち, に, よん, ご

キーと値を一緒に結合

3つ目は、キーと値を一緒に結合する方法です。

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

map()のクロージャーで、キーと値をまとめた文字列を返します。
(mapのクロージャでは、第1引数でキー、第2引数で値を取得)

そして、map()からjoined()を呼び出します。

joined()の引数「separator」に区切り文字を指定します。

//ditc=対象の辞書, strItem=キーと値をひとつにまとめた文字列, sep=区切り文字
let result = dict.map{ a, b in strItem}.joined(separator: sep)

上記のmap()は、対象の辞書のキーと値を一緒に結合した文字列に変換します。

使用例

import Foundation

let nums = [
    "one": 1,
    "two": 2,
    "three": 3, 
    "four": 4,
    "five": 5
]

let result = nums.map{ a, b in "\(a)=\(b)"}.joined(separator: ", ")

print(result)
出力:
four=4, three=3, five=5, one=1, two=2

まとめ

辞書(Dictionary)の要素同士を結合して文字列に変換する方法は、次の3つです。

  • キー(key)同士を結合する方法
    let result = dict.keys.joined(separator: sep)
  • 値(value)同士を結合する方法
    let result = dict.values.joined(separator: sep)
  • キーと値を一緒に結合する方法
    let result = dict.map{ a, b in strItem}.joined(separator: sep)

コメント

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