字典作为集合
本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 32 课,共 78 课。
要把数组转换成集合,可以遍历数组,并将每个值作为键。重复的值会对应到同一个键:
var reports := ["spam", "scam", "spam"]
var banned := {}
for word in reports:
banned[word] = true
print(banned.keys()) # ["spam", "scam"]要检查某个值是否是成员,请使用 has() 或 in 运算符。对于字典,这两种方式检查的都是键,而不是值:
print(banned.has("scam")) # true
print("hello" in banned) # false
print("hello" not in banned) # true数组也有 has(),但它会逐个将值与元素进行比较。字典可以直接查找键,因此即使集合中有数千个成员,成员检查也依然很快。
对集合进行 for 循环会按添加顺序遍历其中的成员:
for word in banned:
print(word) # spam,然后是 scam挑战
简单你在派对门口检查来宾。程序会读取两行输入:
- 来宾名单:姓名之间用空格分隔。有些姓名会重复出现。
- 到场人员:姓名之间用空格分隔。
根据来宾名单创建集合 guests。打印名单上不同人员的数量,然后为每位到场人员打印一行:如果此人在名单上,打印 NAME: welcome;否则打印 NAME: not on the list。对于以下输入:
mia leo ana mia
mia sam ana输出为:
Guests on the list: 3
mia: welcome
sam: not on the list
ana: welcome亲手试试
extends Node
func _ready():
var guest_list := OS.read_string_from_stdin().split(" ", false)
var arrivals := OS.read_string_from_stdin().split(" ", false)
var guests := {}
# 创建客人的集合
# 输出客人的数量,并检查每位到场的人
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: GDScript 在线编译器