Menu
CoddyTech

辞書の反復処理

CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 81/92。

辞書を使ったforループでは、ペアが追加された順にキーが得られます。各キーを使って値を読み取ります。

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

出力は次のとおりです:

apples: 3
pears: 5
plums: 2

値だけが必要な場合は、values()をループします。このループでは、すべての果物の数を合計します:

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

辞書は物の数を数えることもできます。各単語について、get(word, 0)はこれまでの出現回数を返し、その単語が初めて登場したときは0を返します:

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

チャレンジ

簡単

プログラムは入力を1行読み取ります。プレイヤーが拾った戦利品をカンマで区切ったものです。たとえば gold,gem,gold です。

辞書 counts を使って、各アイテムが何回現れるかを数えます。次に、最初に現れた順に、各アイテムとその個数を item: count の形式で1行ずつ出力します。

入力が gold,gem,gold,potion,gold の場合、出力は次のとおりです。

gold: 3
gem: 1
potion: 1

自分で試してみよう

extends Node

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

	# counts 内の各アイテムの数を数える

	# 各アイテムとその個数を出力する
	pass
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ