Il dizionario come insieme
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 32 di 78.
Per trasformare un array in un set, scorrilo e usa ogni valore come chiave. I valori ripetuti finiscono sulla stessa chiave:
var reports := ["spam", "scam", "spam"]
var banned := {}
for word in reports:
banned[word] = true
print(banned.keys()) # ["spam", "scam"]Per verificare se un valore è presente, usa has() oppure l’operatore in. In un dizionario, entrambi controllano le chiavi, mai i valori:
print(banned.has("scam")) # true
print("hello" in banned) # false
print("hello" not in banned) # trueUn array ha anche has(), ma confronta il valore con gli elementi uno per uno. Un dizionario trova direttamente una chiave, quindi un controllo di appartenenza in un set rimane veloce anche con migliaia di elementi.
Un ciclo for su un insieme scorre i suoi elementi nell’ordine in cui sono stati aggiunti:
for word in banned:
print(word) # spam, poi scamSfida
FacileControlli gli ospiti all’ingresso di una festa. Il programma legge due righe di input:
- L’elenco degli ospiti: nomi separati da spazi. Alcuni nomi sono scritti più di una volta.
- Le persone che arrivano: nomi separati da spazi.
Crea l’insieme guests a partire dall’elenco degli ospiti. Stampa quante persone diverse sono nell’elenco, poi una riga per ogni persona che arriva: NAME: welcome se è nell’elenco, oppure NAME: not on the list. Per l’input:
mia leo ana mia
mia sam anal’output è:
Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcomeProvalo tu
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 := {}
# Crea l'insieme degli ospiti
# Stampa il numero di ospiti e controlla ogni arrivo
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online