[解決済み] Swiftで辞書にmap()を適用する一番きれいな方法は何でしょうか?
2022-05-03 04:14:43
質問
辞書のすべてのキーに関数をマッピングしたいのですが、どうすればいいですか?以下のようなものがうまくいくかと思ったのですが、辞書に直接フィルタを適用することはできません。これを達成する最もきれいな方法は何ですか?
この例では、それぞれの値を1ずつ増やそうとしていますが、これはこの例にとって付帯的なもので、主な目的は辞書にmap()を適用する方法を見つけ出すことです。
var d = ["foo" : 1, "bar" : 2]
d.map() {
$0.1 += 1
}
解決方法は?
Swift 4+
朗報です。Swift 4には
mapValues(_:)
メソッドは、同じキーで異なる値を持つ辞書のコピーを作成します。また
filter(_:)
を返すオーバーロード。
Dictionary
と
init(uniqueKeysWithValues:)
と
init(_:uniquingKeysWith:)
のイニシャライザを使用して
Dictionary
を任意のタプルの列から作成します。つまり、キーと値の両方を変えたい場合は、次のように言えばよい。
let newDict = Dictionary(uniqueKeysWithValues:
oldDict.map { key, value in (key.uppercased(), value.lowercased()) })
また、辞書のマージ、欠落した要素のデフォルト値への置き換え、値のグループ化(コレクションを何らかの関数にマッピングした結果をキーとする配列の辞書への変換)などを行う新しいAPIも用意されている。
提案の議論中 SE-0165 これらの機能を導入したStack Overflowの回答を何度か取り上げましたが、そのアップボートの数の多さが需要を実証するのに役立ったと思います。Swift をより良くするためのあなたの手助けに感謝します!
関連
-
[解決済み] Swiftで辞書を繰り返し使用する
-
[解決済み] swiftにおけるconvenience initとinitの違いは何ですか、より良い明示的な例
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] C# の辞書を値で初期化する適切な方法
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み] Swiftベースのアプリケーションは、OS X 10.9/iOS 7以下でも動作しますか?
-
[解決済み] C#でDictionaryに格納された値を更新する方法は?
-
[解決済み】Swiftの辞書にキーが含まれているかどうかを判断し、その値を取得する。
-
[解決済み】[key1,val1,key2,val2]をdictに変換する?
-
[解決済み】Xcode 8 Beta 3 Legacy Swiftを使用する問題
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swift presentViewController
-
[解決済み] 型の不変値に変異型メンバを使用することはできません。
-
スレッド1:シグナルSIGABRTの問題解決
-
[解決済み] swiftの"? "の意味は何ですか?[重複している]。
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] なぜ「Implicitly Unwrapped Optionals」を作るのか、それは値があることを知っていることを意味しているからです。
-
[解決済み] Swiftで乱数を生成する方法とは?
-
[解決済み】weak referenceとunowned referenceの違いは何ですか?
-
[解決済み】Swiftで弱参照の配列を宣言するには?
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?