Menu
CoddyTech

字典方法

本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 80 课,共 92 课。

字典有一些方法,可以告诉你其中包含什么。

keys() 按键值对的顺序返回包含所有键的数组,values() 按键值对的顺序返回包含所有值的数组:

var player := {"name": "Mia", "hp": 100, "level": 3}
print(player.keys()) # ["name", "hp", "level"]
print(player.values()) # ["Mia", 100, 3]

has()用于检查键是否存在。in运算符执行相同的检查:

print(player.has("hp")) # true
print(player.has("mana")) # false
print("level" in player) # true

size() 返回键值对的数量,is_empty() 检查是否没有键值对:

print(player.size()) # 3
print(player.is_empty()) # false
var bag := {}
print(bag.is_empty()) # true

has() 和 in 只检查键,不检查值:player.has("Mia") 的结果是 false。

challenge icon

挑战

简单

程序会读取两行输入:第一行是用逗号分隔的键值对列表,格式为 key:value;第二行是要检查的键。给定的代码已经用第一行的内容填充了字典 info。

按以下顺序输出:

  1. 每个键,每行一个
  2. ---
  3. 每个值,每行一个
  4. ---
  5. 键值对的数量
  6. ---
  7. true 或 false:字典是否为空
  8. ---
  9. true 或 false:第二行输入中的键是否存在

对于输入 name:Mia,hp:100,class:Mage 和 hp,输出为:

name
hp
class
---
Mia
100
Mage
---
3
---
false
---
true

亲手试试

extends Node

func _ready():
	var text := OS.read_string_from_stdin()
	var key := OS.read_string_from_stdin()

	var info := {}
	for pair in text.split(","):
		var parts := pair.split(":")
		info[parts[0]] = parts[1]

	# 输出键、值、大小、is_empty 和 has(key)
	# 各部分之间用 --- 分隔
	pass
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: GDScript 在线编译器