El diccionario como conjunto
Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 32 de 78.
Para convertir un array en un conjunto, recórrelo y convierte cada valor en una clave. Los valores repetidos quedan en la misma clave:
var reports := ["spam", "scam", "spam"]
var banned := {}
for word in reports:
banned[word] = true
print(banned.keys()) # ["spam", "scam"]Para comprobar si un valor es miembro, usa has() o el operador in. En un diccionario, ambos buscan entre las claves, nunca entre los valores:
print(banned.has("scam")) # true
print("hello" in banned) # false
print("hello" not in banned) # trueUn array también tiene has(), pero compara el valor con los elementos uno por uno. Un diccionario encuentra una clave directamente, así que una comprobación de pertenencia en un conjunto sigue siendo rápida incluso con miles de elementos.
Un bucle for sobre un conjunto recorre sus miembros, en el orden en que se añadieron:
for word in banned:
print(word) # spam, luego scamDesafío
FácilCompruebas quiénes son los invitados en la puerta de una fiesta. El programa lee dos líneas de entrada:
- La lista de invitados: nombres separados por espacios. Algunos nombres aparecen más de una vez.
- Las personas que llegan: nombres separados por espacios.
Construye el conjunto guests a partir de la lista de invitados. Imprime cuántas personas diferentes hay en la lista, después una línea por cada persona que llega: NAME: welcome si está en la lista, o NAME: not on the list. Para la entrada:
mia leo ana mia
mia sam anala salida es:
Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcomePruébalo tú mismo
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 := {}
# Construye el conjunto de invitados
# Imprime el número de invitados y comprueba cada llegada
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas de texto en profundidad
Métodos de cadenasBúsqueda en cadenasReemplazar y eliminar espaciosDividir y unirRepaso - Comprobación del nombre de usuario4Diccionarios, parte 2
Diccionarios anidadosArrays de diccionariosCombinar diccionariosCopiar diccionariosRepaso: contador de frecuencias7Enumeraciones
¿Qué es una enumeración?Definir una enumeraciónValores de una enumeraciónEnumeraciones en matchRepaso: semáforo10Funciones avanzadas
Devolver múltiples valoresFunciones lambda, parte 1Funciones lambda, parte 2Repaso: ordenar con lambdaFunciones recursivas, parte 1Funciones recursivas, parte 2Repaso: sumar un array anidado13Sistema de gestión de inventario
Descripción general del proyectoAñadir artículo2Toma de decisiones avanzada
Coincidencia con variablesGuardas de coincidenciaPatrones de arraysPatrones de diccionariosComprobaciones de pertenenciaRepaso: analizador de comandos5Aplicación de agenda de contactos
Mostrar menúAñadir contacto8Gestor de expedientes estudiantiles
Descripción del proyectoAgregar estudiante3Arrays multidimensionales
Conceptos básicos de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DRepaso: arrays 2DArrays irregularesPatrones comunes de arrays 2DRepaso: tablero de juego6Conjuntos con diccionarios
¿Qué es un conjunto?El diccionario como conjuntoAñadir y eliminarUnión e intersecciónDiferencia de conjuntosRepaso: eliminar duplicados9Agregación avanzada de datos
Suma de valoresCómo encontrar el mínimo y el máximoOrdenación personalizadaRepaso: organizador de diccionariosPractica por tu cuenta: Compilador de GDScript online