Swift Academy · レッスン

辞書の反復処理と変換

mapValues、filter、mergeを使い、辞書でデータをグループ化します。

レッスン 2/412 ステップ

「辞書の反復処理と変換」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

ようこそ

Dictionaryは完全な `Sequence` 型です。`for-in`、`map`、`filter`、`reduce` などをサポートしており、キー付きデータを関数型に扱うためのツールを利用できます。

for-inによる反復処理

```swift let prices = ["apple":1.5,"banana":0.8] for (fruit, price) in prices { print("\(fruit): $\(price)") } ``` 順序は保証されません。決定性が必要な場合は、`prices.sorted { $0.key < $1.key }` で並べ替えます。

mapValues

```swift let scores = ["Alice":80,"Bob":90] let doubled = scores.mapValues { $0 * 2 } // ["Alice":160,"Bob":180] ``` `mapValues` はキーをそのまま保持し、値だけを変換します。

Dictionaryでfilterを使う

```swift let d = ["a":1,"b":5,"c":3] let big = d.filter { $0.value > 2 } // ["b":5,"c":3] ```

Dictionary(grouping:by:)によるグループ化

```swift let words = ["apple","ant","ball","banana"] let grouped = Dictionary(grouping: words) { $0.first! } // ["a":["apple","ant"],"b":["ball","banana"]] ``` データを分類する際に非常に便利なパターンです。

reduceでDictionaryを作成する

```swift let nums = [1,2,3,4,5] let freq = nums.reduce(into: [Int:Int]()) { $0[$1, default:0] += 1 } // [1:1,2:1,3:1,4:1,5:1] ```

キーを並べ替えて反復処理する

```swift let d = ["c":3,"a":1,"b":2] for key in d.keys.sorted() { print("\(key): \(d[key]!)") } // a:1, b:2, c:3 ```

compactMapValues

```swift let raw = ["a":"1","b":"two","c":"3"] let nums = raw.compactMapValues { Int($0) } // ["a":1,"c":3] — "b" dropped ``` 値を変換し、変換結果がnilになるエントリを削除します。

単一の値への集約

```swift let sales = ["Q1":1000,"Q2":1200,"Q3":800] let total = sales.values.reduce(0, +) // 3000 let max = sales.values.max()! // 1200 ```

2つの配列からDictionaryを作成する

```swift let keys = ["a","b","c"] let vals = [1, 2, 3] let d = Dictionary(uniqueKeysWithValues: zip(keys, vals)) // ["a":1,"b":2,"c":3] ```

確認問題

キーをそのまま保持しながら、Dictionaryの値を変換するメソッドはどれですか?

まとめ

主なポイント: • `for (k,v) in dict` — 反復処理を行います。決定性が必要ならキーを並べ替えます • `mapValues` — キーを保持したまま値を変換します • `filter` — 条件に一致するペアから新しいDictionaryを返します • `Dictionary(grouping:by:)` — 強力なグループ化用イニシャライザです • `compactMapValues` — 値を変換し、nilを削除します 次はSetの操作です。
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「辞書の反復処理と変換」レッスンは無料ですか?

はい。「辞書の反復処理と変換」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「辞書の反復処理と変換」で何を学びますか?

mapValues、filter、mergeを使い、辞書でデータをグループ化します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「辞書の反復処理と変換」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 辞書のCRUDとサブスクリプトアクセス
  2. 辞書の反復処理と変換
  3. Setの操作:和集合、積集合、差集合
  4. Array、Dictionary、Setの使い分け
← Swift Academyに戻る