Словарь как множество
Часть раздела Логика и потоки выполнения путешествия по 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Задание
ЛегкоТы проверяешь гостей у входа на вечеринку. Программа считывает две строки ввода:
- Список гостей: имена, разделённые пробелами. Некоторые имена указаны несколько раз.
- Прибывающие люди: имена, разделённые пробелами.
Создай множество 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 := {}
# Сформируйте множество гостей
# Выведите количество гостей и проверьте каждого прибывшего
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript