0Pricing
Swift Academy · Урок

Итерация и преобразование словарей

Используйте mapValues, filter и merge, а также группируйте данные с помощью словарей

«Итерация и преобразование словарей» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

Словари являются полноценными типами `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` сохраняет ключи и преобразует только значения.

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"]] ``` Это чрезвычайно полезный шаблон для категоризации данных.

Сведение в словарь

```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 ```

Словарь из двух массивов

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

Быстрая проверка

Какой метод преобразует значения словаря, сохраняя ключи неизменными?

Итоги

Основные выводы: • `for (k,v) in dict` — перебор; для детерминированного результата сортируйте ключи • `mapValues` — преобразует значения, сохраняя ключи • `filter` — возвращает новый словарь с подходящими парами • `Dictionary(grouping:by:)` — мощный инициализатор для группировки • `compactMapValues` — преобразует значения и удаляет nil Далее: операции над множествами.

Часто задаваемые вопросы

Урок «Итерация и преобразование словарей» бесплатный?

Да — полный текст урока «Итерация и преобразование словарей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Итерация и преобразование словарей»?

Используйте mapValues, filter и merge, а также группируйте данные с помощью словарей Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Итерация и преобразование словарей»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Операции CRUD со словарями и доступ по подписке
  2. Итерация и преобразование словарей
  3. Операции над множествами: объединение, пересечение, разность
  4. Выбор между Array, Dictionary и Set
← Назад к Swift Academy