Выбор ответа Junior Коллекции и строки обновлено
Подсчёт частот в словаре
Вопрос
Как короче всего посчитать частоты слов в [String: Int]?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: counts[word, default: 0] += 1. Сабскрипт [key, default:] возвращает значение по умолчанию, если ключа нет, и позволяет мутировать на месте. counts[word]! упадёт на первом новом слове. counts[word] += 1 не компилируется: сабскрипт возвращает Int?. updateValue записывает…
Варианты ответа
counts[word]! += 1counts[word, default: 0] += 1правильный ответcounts[word] += 1counts.updateValue(+1, forKey: word)
Разбор
Сабскрипт [key, default:] возвращает значение по умолчанию, если ключа нет, и позволяет мутировать на месте. counts[word]! упадёт на первом новом слове. counts[word] += 1 не компилируется: сабскрипт возвращает Int?. updateValue записывает значение, а не прибавляет. Ещё вариант: Dictionary(words.map { ($0, 1) }, uniquingKeysWith: +).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Коллекции и строки»
- Сложность append у Array в Swift
- Сложность операций коллекций Swift
- String и NSString: длина и индексы
- Как взять n-й символ строки в Swift
- Сколько символов в строке с флагом
- Контракт Hashable в Swift
- Задача на Swift: сгруппировать анаграммы
- Задача на Swift: правильная скобочная последовательность