Menu
CoddyTech

Iterare sui dizionari

Fa parte della sezione Fondamenti del percorso GDScript di Coddy. Lezione 81 di 92.

Un ciclo for su un dizionario restituisce le sue chiavi, nell’ordine in cui sono state aggiunte le coppie. Usa ogni chiave per leggere il relativo valore:

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

L'output è:

apples: 3
pears: 5
plums: 2

Quando ti servono solo i valori, esegui un ciclo su values(). Questo ciclo somma tutta la frutta:

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

Un dizionario può anche contare gli elementi. Per ogni parola, get(word, 0) restituisce il conteggio attuale, oppure 0 la prima volta che compare la parola:

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

Sfida

Facile

Il programma legge una riga di input: il bottino raccolto da un giocatore, separato da virgole, per esempio gold,gem,gold.

Conta quante volte appare ogni oggetto in un dizionario chiamato counts. Poi stampa ogni oggetto e il relativo conteggio come item: count, uno per riga, nell’ordine in cui gli oggetti sono apparsi per la prima volta.

Per l’input gold,gem,gold,potion,gold, l’output è:

gold: 3
gem: 1
potion: 1

Provalo tu

extends Node

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

	# Conta ogni elemento in counts

	# Stampa ogni elemento e il relativo conteggio
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore GDScript online