Перебор элементов словаря
Часть раздела Основы путешествия по GDScript на Coddy. Урок 81 из 92.
Цикл for по словарю возвращает его ключи в том порядке, в котором были добавлены пары. Используй каждый ключ, чтобы прочитать его значение:
var stock := {"apples": 3, "pears": 5, "plums": 2}
for fruit in stock:
print(fruit, ": ", stock[fruit])Результат:
apples: 3
pears: 5
plums: 2Если нужны только значения, перебирай values(). Этот цикл складывает количество всех фруктов:
var total := 0
for amount in stock.values():
total += amount
print(total) # 10Словарь также может подсчитывать элементы. Для каждого слова get(word, 0) возвращает текущий счётчик или 0, когда слово встречается впервые:
var counts := {}
for word in ["gold", "gem", "gold"]:
counts[word] = counts.get(word, 0) + 1
print(counts) # { "gold": 2, "gem": 1 }Задание
ЛегкоПрограмма считывает одну строку ввода: добычу, которую подобрал игрок, элементы которой разделены запятыми, например gold,gem,gold.
Посчитай, сколько раз встречается каждый предмет, в словаре с именем counts. Затем выведи каждый предмет и количество его появлений в формате item: count, по одному в строке, в порядке первого появления предметов.
Для ввода gold,gem,gold,potion,gold вывод будет таким:
gold: 3
gem: 1
potion: 1Попробуйте сами
extends Node
func _ready():
var loot := OS.read_string_from_stdin().split(",")
var counts := {}
# Подсчитайте количество каждого предмета в counts
# Выведите каждый предмет и его количество
pass
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический ввод12Основы массивов
Объявление массиваДоступ к элементам массиваИзменение массивовМетоды массивовПовторение — массив произведенийПовторение — перевёрнутый массивТипизированные массивы15Словари
Создание словарейДоступ к значениямИзменение словарейМетоды словарейПеребор элементов словаряПовторение — словарь инвентаряПотренируйтесь самостоятельно: Онлайн-компилятор GDScript