Menu
CoddyTech

Mengendifferenz

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 35 von 78.

Die Differenz zweier Mengen enthält die Elemente der ersten Menge, die nicht in der zweiten enthalten sind. Durchlaufe die erste Menge und behalte, was der zweiten Menge fehlt:

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"]

Die Reihenfolge der Mengen ist wichtig. Die Differenz von packed und needed ist ["apple"]: das, was du eingepackt, aber nicht gebraucht hast.

Die beiden Differenzen zusammen bilden die symmetrische Differenz: die Elemente, die in genau einer der Mengen enthalten sind. Hier sind das rope, map und apple.

Um zu überprüfen, dass nichts fehlt, nimmt has_all() ein Array entgegen und gibt true zurück, wenn jedes seiner Elemente ein Schlüssel des Wörterbuchs ist:

print(packed.has_all(needed.keys())) # false: rope und map fehlen
challenge icon

Aufgabe

Einfach

Vor einer Reise vergleichst du, was du brauchst, mit dem, was du eingepackt hast. Das Programm liest zwei durch Leerzeichen getrennte Zeilen ein: die benötigten Gegenstände und die eingepackten Gegenstände. Der Startcode erstellt die Mengen needed und packed.

Gib zwei Zeilen aus, deren Elemente mit , verbunden sind:

  • Missing: gefolgt von den benötigten Gegenständen, die nicht eingepackt sind
  • Extra: gefolgt von den eingepackten Gegenständen, die nicht benötigt werden

Behalte die Reihenfolge der Menge bei, über die du iterierst. Gib none anstelle einer leeren Liste aus. Für die Eingabe:

rope torch map
torch apple

ist die Ausgabe:

Missing: rope, map
Extra: apple

Probier es selbst

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

	# Erstelle die beiden Differenzmengen

	# Gib die Ergebnisse aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler