Menu
CoddyTech

Recorrer diccionarios

Parte de la sección Fundamentos del Journey de GDScript de Coddy. Lección 81 de 92.

Un bucle for sobre un diccionario te da sus claves, en el orden en que se añadieron los pares. Usa cada clave para leer su valor:

var stock := {"apples": 3, "pears": 5, "plums": 2}
for fruit in stock:
	print(fruit, ": ", stock[fruit])

La salida es:

apples: 3
pears: 5
plums: 2

Cuando solo necesitas los valores, recorre values(). Este bucle suma todas las frutas:

var total := 0
for amount in stock.values():
	total += amount
print(total) # 10

Un diccionario también puede contar cosas. Para cada palabra, get(word, 0) devuelve el recuento hasta el momento, o 0 la primera vez que aparece la palabra:

var counts := {}
for word in ["gold", "gem", "gold"]:
	counts[word] = counts.get(word, 0) + 1
print(counts) # { "gold": 2, "gem": 1 }
challenge icon

Desafío

Fácil

El programa lee una línea de entrada: el botín que recogió un jugador, separado por comas, por ejemplo gold,gem,gold.

Cuenta cuántas veces aparece cada elemento en un diccionario llamado counts. Después, imprime cada elemento y su cantidad como item: count, uno por línea, en el orden en que aparecieron por primera vez.

Para la entrada gold,gem,gold,potion,gold, la salida es:

gold: 3
gem: 1
potion: 1

Pruébalo tú mismo

extends Node

func _ready():
	var loot := OS.read_string_from_stdin().split(",")
	var counts := {}

	# Cuenta cada elemento en counts

	# Imprime cada elemento y su cantidad
	pass
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de GDScript online