Menu
CoddyTech

Dicionário como conjunto

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 32 de 78.

Para transformar um array em um conjunto, percorra-o e torne cada valor uma chave. Valores repetidos ficam na mesma chave:

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

Para verificar se um valor é um membro, use has() ou o operador in. Em um dicionário, ambos verificam as chaves, nunca os valores:

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

Um array também tem has(), mas compara o valor com os elementos um por um. Um dicionário encontra uma chave diretamente, então uma verificação de pertencimento em um conjunto continua rápida mesmo com milhares de elementos.

Um loop for sobre um conjunto percorre seus elementos na ordem em que foram adicionados:

for word in banned:
	print(word) # spam, depois scam
challenge icon

Desafio

Fácil

Você confere os convidados na entrada de uma festa. O programa lê duas linhas de entrada:

  1. A lista de convidados: nomes separados por espaços. Alguns nomes aparecem mais de uma vez.
  2. As pessoas que estão chegando: nomes separados por espaços.

Monte o conjunto guests a partir da lista de convidados. Imprima quantas pessoas diferentes estão na lista e, em seguida, uma linha por pessoa que está chegando: NAME: welcome se ela estiver na lista ou NAME: not on the list. Para a entrada:

mia leo ana mia
mia sam ana

a saída é:

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

Experimente você mesmo

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 := {}

	# Crie o conjunto de convidados

	# Exiba o número de convidados e verifique cada chegada
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online