dict全称dictionary,在其他语言中也称为map,使用**键-值(key-value)**存储,具有极快的查找速度
创建dict
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
内部实现方法
先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
加入数据
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
>>> d['Tony'] = 99
>>> d
{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Tony': 99}
查询key是否存在
使用in
>>> 'Thomas' in d
False
>>> 'Bob' in d
True
使用get()
如果key不存在,返回None
,或者自己指定的value
>>> d.get('Thomas') #返回None时Python交互环境不显示
>>> d.get('Thomas', -1)
-1
删除key
删除一个key,用pop(key)
方法,对应的value也会从dict中删除,返回删除的value
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85, 'Tony': 99}
注意
dict内部存放顺序与key放入顺序无关 dict的key必须是不可变对象 实质:哈希表
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
dict相关函数和方法
函数
- str(dict) 输出字典,以可打印的字符串表示
- type(variable) 返回输入的变量类型
方法
- radiansdict.clear() 删除字典内所有元素
- radiansdict.copy() 返回一个字典的浅复制
- radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
- radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
- key in dict 如果键在字典dict里返回true,否则返回false
- radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
- radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
- radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
- radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
- radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
- pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
- popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。