字典 Dict
字典
字典,顾名思义,即是一个按照特定的名称key来存储元素的集合与容器。除此以外,如果您有其他编程语言的开发经验,您可以将列表理解成类似于hashmap, 对象的类型结构。
字典具有如下特性:
字典中的元素是没有顺序的
字典中的元素通过唯一的键,名称进行访问
何时使用列表?
当你的物品中,存在以下需求时,可以考虑使用列表:
需要结构化存储大量数据
需要一个具名容器用来存储不同类别下的数据
需要使用到列表自展开功能,即自动展示多行lore时
示例
定义一个字典
您可以通过 {}
字面量语法来声明一个字典,并且字典中可以直接设置好对应的键值对,例如 {name: "AzureFlow", age: 0}
,即包含了两个元素的字典,每个元素的键分别是 name
和 age
。
具体示例如下:
data:
# 定义了一个含有两个键值对的字典
attribute: '{ name: "物理攻击", value: 10 }'
# 用字典实现对象的功能
user: '{ name: "", age: "", password: "" }'
# 使用字典和列表嵌套
nested_dict_list: '[
{name: "物理攻击", value: 50},
{name: "物理防御", value: 100},
{name: "魔法攻击", value: 20},
]'
nested_list_dict: '{
list1: [1, 2, 3]
list2: [4, 5, 6]
list3: [7, 8, 9]
}'
访问字典中的元素
您可以通过 dict["key"]
或 dict.key
来访问列表中的元素,其中,dict
是已经定义好的列表,key
是待访问的元素的键名。
具体示例如下:
define:
# 预先定义一个普通的字典, 方便后面演示使用
user: '{ name: "", age: "", password: "" }'
# 预先定义一个嵌套, 方便后面演示使用
attributes: '[
{name: "物理攻击", value: 50},
{name: "物理防御", value: 100},
{name: "魔法攻击", value: 20},
]'
data:
# 访问user字典中的name值
name: 'user.name'
# 或者
name: 'user["name"]'
# 访问属性列表中的第一个属性字典的名字
first_attribute_name: 'attributes[0].name'
# 或者
first_attribute_name: 'attributes[0]["name"]'
添加一个元素
您可以通过 dict["key"] = value
或 dict.key = value
来设置添加列表中的元素,其中,dict
是已经定义好的列表,key
是待设置的元素的键名,value
是需要添加的元素。
具体示例如下:
data:
# 预先定义一个空字典, 方便后面演示使用
my_dict: '[]'
action:
onKill:
# 在每次击杀一个生物时, 以击杀的生物的名字作为键名, 数字1作为值, 设置到字典中
- 'run: my_dict[event.victim.name] = 1'
# 更新物品
- 'update'
Last updated