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

挑战

简单

程序会读取一行输入:玩家捡到的战利品,物品之间用逗号分隔,例如 gold,gem,gold。

统计每件物品在名为 counts 的字典中出现的次数。然后按物品首次出现的顺序,逐行输出每件物品及其数量,格式为 item: count。

对于输入 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 在线编译器