Menu
CoddyTech

Różnica zbiorów

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 35 z 78.

Różnica dwóch zbiorów zawiera elementy pierwszego zbioru, których nie ma w drugim. Przejdź przez pierwszy zbiór i zachowaj te elementy, których brakuje w drugim:

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

Kolejność zbiorów ma znaczenie. Różnica zbiorów packed i needed to ["apple"]: to, co spakowałeś, ale czego nie potrzebowałeś.

Te dwie różnice razem tworzą różnicę symetryczną: elementy, które należą dokładnie do jednego ze zbiorów. Tutaj są to rope, map i apple.

Aby sprawdzić, czy niczego nie brakuje, has_all() przyjmuje tablicę i zwraca true, gdy każdy jej element jest kluczem słownika:

print(packed.has_all(needed.keys())) # false: brakuje liny i mapy
challenge icon

Wyzwanie

Łatwy

Przed wyjazdem porównujesz to, czego potrzebujesz, z tym, co spakowałeś. Program odczytuje dwa wiersze: potrzebne przedmioty i spakowane przedmioty, oddzielone spacjami, a kod początkowy tworzy zbiory needed i packed.

Wypisz dwa wiersze, łącząc elementy za pomocą , :

  • Missing: i dalej potrzebne przedmioty, których nie spakowano
  • Extra: i dalej spakowane przedmioty, które nie są potrzebne

Zachowaj kolejność zbioru, po którym wykonujesz pętlę. Zamiast pustej listy wypisz none. Dla danych wejściowych:

rope torch map
torch apple

wynik to:

Missing: rope, map
Extra: apple

Spróbuj swoich sił

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

	# Utwórz dwie różnice

	# Wypisz wyniki
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online