Menu
CoddyTech

Словарь как множество

Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 32 из 78.

Чтобы превратить массив в множество, пройдись по нему и сделай каждое значение ключом. Повторяющиеся значения попадут в один и тот же ключ:

var reports := ["spam", "scam", "spam"]
var banned := {}
for word in reports:
	banned[word] = true
print(banned.keys()) # ["spam", "scam"]

Чтобы проверить, входит ли значение в словарь, используйте has() или оператор in. Для словаря оба проверяют ключи, а не значения:

print(banned.has("scam")) # true
print("hello" in banned) # false
print("hello" not in banned) # true

У массива также есть has(), но он сравнивает значение с элементами по одному. Словарь находит ключ напрямую, поэтому проверка принадлежности множества остаётся быстрой даже при тысячах элементов.

Цикл for по множеству перебирает его элементы в том порядке, в котором они были добавлены:

for word in banned:
	print(word) # spam, затем scam
challenge icon

Задание

Легко

Ты проверяешь гостей у входа на вечеринку. Программа считывает две строки ввода:

  1. Список гостей: имена, разделённые пробелами. Некоторые имена указаны несколько раз.
  2. Прибывающие люди: имена, разделённые пробелами.

Создай множество guests из списка гостей. Выведи количество разных людей в списке, затем по одной строке для каждого прибывающего человека: NAME: welcome, если он есть в списке, или NAME: not on the list. Для входных данных:

mia leo ana mia
mia sam ana

вывод будет таким:

Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcome

Попробуйте сами

extends Node

func _ready():
	var guest_list := OS.read_string_from_stdin().split(" ", false)
	var arrivals := OS.read_string_from_stdin().split(" ", false)
	var guests := {}

	# Сформируйте множество гостей

	# Выведите количество гостей и проверьте каждого прибывшего
quiz iconПроверьте себя

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

Все уроки раздела Логика и потоки выполнения

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