Menu
CoddyTech

Differenza tra insiemi

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 35 di 78.

La differenza di due insiemi contiene gli elementi del primo insieme che non sono nel secondo. Esegui un ciclo sul primo insieme e conserva ciò che manca nel secondo:

var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
	if not packed.has(item):
		missing[item] = true
print(missing.keys()) # ["rope", "map"]

L'ordine degli insiemi è importante. La differenza tra packed e needed è ["apple"]: ciò che hai messo in valigia ma non ti serviva.

Le due differenze insieme formano la differenza simmetrica: gli elementi che si trovano in uno solo dei due insiemi. In questo caso sono rope, map e apple.

Per verificare che non manchi nulla, has_all() riceve un array e restituisce true quando ogni suo elemento è una chiave del dizionario:

print(packed.has_all(needed.keys())) # false: mancano la corda e la mappa
challenge icon

Sfida

Facile

Prima di un viaggio, confronti ciò di cui hai bisogno con ciò che hai messo in valigia. Il programma legge due righe, gli elementi necessari e quelli messi in valigia, separati da spazi, e il codice iniziale crea gli insiemi needed e packed.

Stampa due righe, con gli elementi uniti da , :

  • Missing: seguito dagli elementi necessari che non sono stati messi in valigia
  • Extra: seguito dagli elementi messi in valigia che non sono necessari

Mantieni l'ordine dell'insieme su cui esegui il ciclo. Stampa none invece di una lista vuota. Per l'input:

rope torch map
torch apple

l'output è:

Missing: rope, map
Extra: apple

Provalo tu

extends Node

func _ready():
	var needed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		needed[item] = true
	var packed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		packed[item] = true

	# Calcola le due differenze

	# Stampa i risultati
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 Logica e flusso

Esercitati da solo: Compilatore GDScript online