Menu
CoddyTech

Iterowanie po słownikach

Część sekcji Podstawy ścieżki GDScript w Coddy. Lekcja 81 z 92.

Pętla for przechodząca po słowniku zwraca jego klucze w kolejności, w jakiej dodano pary. Użyj każdego klucza, aby odczytać jego wartość:

var stock := {"apples": 3, "pears": 5, "plums": 2}
for fruit in stock:
	print(fruit, ": ", stock[fruit])

Wynik to:

apples: 3
pears: 5
plums: 2

Gdy potrzebujesz tylko wartości, użyj pętli po values(). Ta pętla sumuje wszystkie owoce:

var total := 0
for amount in stock.values():
	total += amount
print(total) # 10

Słownik może też zliczać elementy. Dla każdego słowa funkcja get(word, 0) zwraca dotychczasowy wynik albo 0, gdy słowo pojawia się po raz pierwszy:

var counts := {}
for word in ["gold", "gem", "gold"]:
	counts[word] = counts.get(word, 0) + 1
print(counts) # { "gold": 2, "gem": 1 }
challenge icon

Wyzwanie

Łatwy

Program odczytuje jeden wiersz danych wejściowych: łup zebrany przez gracza, rozdzielony przecinkami, na przykład gold,gem,gold.

Policz, ile razy każdy przedmiot występuje w słowniku o nazwie counts. Następnie wypisz każdy przedmiot i jego liczbę w formacie item: count, po jednym w wierszu, w kolejności pierwszego wystąpienia.

Dla danych wejściowych gold,gem,gold,potion,gold wynikiem jest:

gold: 3
gem: 1
potion: 1

Spróbuj swoich sił

extends Node

func _ready():
	var loot := OS.read_string_from_stdin().split(",")
	var counts := {}

	# Policz każdy element w counts

	# Wypisz każdy element i jego liczbę wystąpień
	pass
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator GDScript online