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) # trueUm 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 scamDesafio
FácilVocê confere os convidados na entrada de uma festa. O programa lê duas linhas de entrada:
- A lista de convidados: nomes separados por espaços. Alguns nomes aparecem mais de uma vez.
- 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 anaa saída é:
Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcomeExperimente 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
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
1Strings em Profundidade
Métodos de StringBusca em StringsSubstituir e Remover EspaçosDividir e UnirRecapitulação - Verificação de Nome de Usuário4Dicionários - Parte 2
Dicionários aninhadosArrays de dicionáriosMesclando dicionáriosCopiando dicionáriosRevisão - Contador de frequência10Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Revisão - Ordenação com LambdaFunções Recursivas Parte 1Funções Recursivas Parte 2Revisão - Somando Array Aninhado13Sistema de Gerenciamento de Estoque
Visão Geral do ProjetoAdicionar Item2Tomada de Decisões Avançada
Correspondência com VariáveisGuards de CorrespondênciaPadrões de ArrayPadrões de DicionárioVerificações de PertinênciaRevisão - Analisador de Comandos5Aplicativo de Agenda de Contatos
Exibir menuAdicionar contato8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno3Arrays multidimensionais
Fundamentos de arrays 2DAcessando elementos de arrays 2DLaços aninhados com arrays 2DRevisão - arrays 2DArrays irregularesPadrões comuns de arrays 2DRevisão - tabuleiro de jogo6Conjuntos com Dicionários
O que é um conjunto?Dicionário como conjuntoAdicionando e removendoUnião e interseçãoDiferença entre conjuntosRevisão - Removendo duplicatas9Agregação Avançada de Dados
Somando ValoresEncontrando o Mínimo e o MáximoOrdenação PersonalizadaRevisão - Ordenador de DicionáriosPratique por conta própria: Compilador de GDScript online