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 fehlenAufgabe
EinfachVor 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 sindExtra: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 appleist die Ausgabe:
Missing: rope, map
Extra: appleProbier 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler