dictionary
说明
字典是将数据存储为值的映射,这些值可以使用对应的唯一键来访问。每对键和值构成一个条目。使用字典高效查找与键关联的值。
创建对象
描述
使用指定的键和值创建一个字典。生成的字典 d = dictionary(keys,values)d 是一个 1×1 标量对象。如果您将多个值赋给同一个键,则只赋这些值中的最后一个值。对现有键的新赋值会覆盖该条目的值。
keys 和 values 的大小必须相同,除非 values 是标量,其中 keys 的每个元素成为 values 的一个键。当键和值是数组时,条目的数量等于键-值对组的数量。
keys 和 values 可以是任何类型,但键类型和值类型必须一致。字典中的所有键和所有值必须分别具有相同的数据类型,或可转换为配置的数据类型。如果新条目的某些部分的数据类型不同于已配置的数据类型,则 MATLAB® 会尝试转换条目类型。键和值不需要具有相同的数据类型。dictionary 将指定为字符行向量的键和值转换为字符串标量。
要存储混合使用的键或值类型,请使用元胞数组。当您对使用元胞作为值的字典执行查找时,字典返回元胞数组。您可以使用花括号 {}(而不是括号)直接访问元胞数组的内容。 (自 R2023a 起)
使用指定的键-值对组创建一个字典。如果指定了同一个键的多个实例,则只对最后一个键-值对组赋值。d = dictionary(k1,v1,...,kN,vN)
输入参量
输出参量
用途
使用 dictionary 创建字典 d。然后,您可以使用以下任何语法访问或更改 d。
描述
valueOut = d(keys) 查找与 keys 关联的值。
d(keys) = newValues 将 newValues 的元素赋给由 keys 的对应值指定的条目。如果字典中不存在指定的键,则会添加一个新条目。如果您将多个值赋给同一个键,则只赋这些值中的最后一个值。对现有键的新赋值会覆盖该条目的值。
d(keys) = [] 从字典中删除与 keys 关联的条目。
valueOut = d{keys} 查找与 keys 关联的值并返回元胞的内容。如果 keys 是数组,则返回对应值的以逗号分隔的列表。如果字典值配置为元胞以外的数据类型,此语法会抛出错误。
d{keys} = newValues 将包含 newValues 的元素的元胞赋给由对应键值指定的条目。如果字典值配置为元胞以外的数据类型,此语法会抛出错误。
对象函数
configureDictionary | 使用指定的键和值类型创建字典 |
insert | 向字典中添加条目 |
lookup | 按键在字典中查找值 |
remove | 删除字典条目 |
entries | Key-value pairs of dictionary |
keys | 字典的键 |
values | 字典的值 |
types | 字典键和值的类型 |
numEntries | 字典中键-值对组的数量 |
isConfigured | Determine if dictionary has types assigned to keys and values |
isKey | 确定字典是否包含键 |
示例
提示
您可以对键和值都使用自定义类。但是,如果您使用的类具有重载的索引或大小查询,或其行为与标准数组行为不同,则字典可能不会按预期工作。有关其他信息,请参阅Dictionaries and Custom Classes。
条目按其添加顺序存储,并以相同的顺序返回。例如,创建一个包含三个条目的字典:
d = dictionary("first",1,"second",2,"third",3)
d = dictionary (string ⟼ double) with 3 entries: "first" ⟼ 1 "second" ⟼ 2 "third" ⟼ 3此字典的键或值以其添加顺序返回。
k = keys(d)
k = 3×1 string array "first" "second" "third"如果添加其他条目,它们将添加到先前条目的末尾。
d("fourth") = 4d = dictionary (string ⟼ double) with 4 entries: "first" ⟼ 1 "second" ⟼ 2 "third" ⟼ 3 "fourth" ⟼ 4更新一个条目的值不会更改其在条目顺序中的位置。