dict字典
定义 ,存储键值对的集合。Dict
Dict 为字典元素的插入、查找和删除提供了高效的 O(1) 摊销平均时间复杂度。它的实现与 Python 的实现非常相似:dict
- 性能和大小针对小型词典进行了大量优化,但可以扩展到大型词典。
- 插入顺序被隐式保留。对键、值和项的迭代具有基于插入的确定性顺序。
关键元素必须实现KeyElement
该特征,其中包括 Movable、Hashable 和 EqualityComparable。它还包括 CollectionElement 和 Copyable,直到我们通过标准库类型推送引用。
出于类似原因,Value 元素必须是 CollectionElements。键和值类型都必须始终是 Movable,以便我们可以随着字典的增长而调整字典的大小。
DictEntry
将键值对条目存储在字典中。
参数:
- K (
KeyElement
):字典的键类型。必须是 Hashable+EqualityComparable。 - V (
CollectionElement
):字典的值类型。
属性:
- hash (
Int
):,因此在字典查找期间不会重新计算哈希。key.__hash__()
- key (
K
):条目的唯一键。 - value (
V
):与键关联的值。
实现的特征:
AnyType`,`CollectionElement`,`Copyable`,`Movable
方法:
__init__
__init__(inout self: Self, owned key: K, owned value: V)
从键和值创建条目,计算哈希值。
参数:
- key (
K
):条目的键。 - value (
V
):条目的值。
Dict
存储键值对的容器。
键类型和值类型必须静态指定,这与 Python 字典不同,Python 字典可以接受任意键和值类型。
键类型必须实现KeyElement
包含Movable
、Hashable
和EqualityComparable
的特征。它还包括CollectionElement
和Copyable
直到我们有引用。
值类型必须实现CollectionElement
特征。
用法:
from collections import Dict
var d = Dict[String, Int]()
d["a"] = 1
d["b"] = 2
print(len(d)) # prints 2
print(d["a"]) # prints 1
print(d.pop(