Menu
CoddyTech

Перебор элементов словаря

Часть раздела Основы путешествия по 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 }
challenge icon

Задание

Легко

Программа считывает одну строку ввода: добычу, которую подобрал игрок, элементы которой разделены запятыми, например 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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript