辞書のメソッド
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")) # 真
print(player.has("mana")) # 偽
print("level" in player) # 真size()はペアの数を返し、is_empty()は何もないかどうかを確認します:
print(player.size()) # 3
print(player.is_empty()) # false
var bag := {}
print(bag.is_empty()) # truehas() と in はキーだけを確認し、値は確認しません。player.has("Mia") は false です。
チャレンジ
簡単プログラムは2行の入力を読み取ります。1行目はカンマで区切られたkey:value形式のペアのリストで、2行目は確認するキーです。与えられたコードは、すでに1行目から辞書infoを作成しています。
次の順番で出力してください。
- 各キーを1行に1つずつ
---- 各値を1行に1つずつ
---- ペアの数
---- 辞書が空かどうかを示す
trueまたはfalse ---- 2行目の入力のキーが存在するかどうかを示す
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]
# keys、values、size、is_empty、has(key)を出力する
# 各部分の間に---を入れる
pass
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ