字典通过哈希表(Hash Table)实现,是一种高效的数据结构,查找元素、插入元素、删除元素都具有较快的速度。
字典的字面量使用花括号({}
)包裹一组 键(key)-值(value)对 表示,例如:
score_list:dict[str,int] = {
'Tom': 88,
'Jerry': 99,
'Spike': 66
}
digraph HashTable {
node [shape=record, fontname="Helvetica"];
score_list [label="score_list", shape=ellipse];
// 桶的结构
bucket1 [label="Bucket 1 | {key: Tom | value: 88}"];
bucket2 [label="Bucket 2 | {key: Jerry | value: 99}"];
bucket3 [label="Bucket 3 | {key: Spike | value: 66}"];
// 指向桶
score_list -> bucket1 [label="Tom"];
score_list -> bucket2 [label="Jerry"];
score_list -> bucket3 [label="Spike"];
}
类型标注 dict[str,int]
,表示类型是 键(key)类型为 str
,值(value)类型为 int
的字典。
字面量中的
Tom
、Jerry
、Spike
是键(Key),88
、99
、66
是值(Value)。
通过字典后跟方括号([]
)键(key)访问元素,例如:
在数据量较大时,相较于列表,查找时不仅简单,而且速度也要更快。
如果尝试读取一个不存在的 key,会产生错误:
可以通过 in
来判断 key 是否在字典中:
字典后跟方括号([]
)键(key)可以增加或修改元素:
通过 pop
方法可以删除字典元素:
通过 clear
方法可以清空列表:
通过 update
方法,可以合并另一个字典的元素:
和列表一样,直接将字典赋值给另一个变量,将会互相影响,如果不希望这样,就需要复制字典: