dict
- python内置的一种数据结构
- 无序
- 可更改
类似于C++语言的map,存键值对,有很快的查找速度。比如根据身份证号查找某个人的名字,根据学号查找学生成绩单。用list遍历也可以得到结果,但是太慢了,list就好像你在一个小区找人,你一家一家敲门。dict就好像你直接按照地址X栋X单元X层直接找。
dict是典型的用空间换时间的例子。会占用大量内存,但是查找、插入速度很快,不会随着元素数量增加而增加。
list则是时间换空间的例子,不会占用大量内存,但是随着元素数量增多,查找时间会变很长。
声明
>>>name = {1: "alan", 2: "bob", 3: "lucy"}
查找
>>>name[1]
'alan'
>>>name[2]
'bob'
>>>name[3]
'lucy'
>>> name[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 5
为了避免出现报错的情况我们一般事先判断一下这个key是否在字典中
>>> 5 in name
False
也可以用get方法取,如果key不存在,会返回None或者自己定义的默认值
>>> name.get(5)
>>> name.get(5, "default")
'default'
更改
>>> name[4] = "mac"
>>> name
{1: "alan", 2: "bob", 3: "lucy", 4: "mac"}
删除
>>> name.pop(1)
'alan'
>>> name
{2: 'bob', 3: 'lucy'}
元素个数
>>> name = {1: "alan", 2: "bob", 3: "lucy"}
>>> len(name)
3
获取所有Key
>>> name = {1: "alan", 2: "bob", 3: "lucy"}
>>> name.keys()
[1,2, 3]
获取所有value
>>> name = {1: "alan", 2: "bob", 3: "lucy"}
>>> name.values()
dict_values(['alan', 'bob', 'lucy'])
获取所有键值对
>>> name = {1: "alan", 2: "bob", 3: "lucy"}
>>> name.items()
dict_items([(1, 'alan'), (2, 'bob'), (3, 'lucy')])
网友评论