집합으로서의 딕셔너리
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 32번째.
배열을 집합으로 바꾸려면 배열을 순회하면서 각 값을 키로 만드세요. 중복된 값은 같은 키에 저장됩니다:
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 := {}
# 손님 집합을 만듭니다
# 손님 수를 출력하고 각 도착자를 확인합니다
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러