字典dict
Python内置字典,通过key-value进行存储,字典是无序的,拓展hash
|
|
给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。
用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢
|
|
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
key-value的存储,是在放进去的时候必须通过key的值算出value的存放位置,这样拿的时候也是根据value的值去内存中拿
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
|
|
一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
如果key不存在,dict就会报错:
避免key不存在的错误,通过in判断key是否存在
1.
2.
get()
增加字典元素两种方法
1.
- setdefault12345dict1.setdefault(2,'hello')'hello'dict1{1: 'ahah', 2: 'hello'}>>>
删除Python字典
|
|
清空字典
dict1.clear()
删除字典对象
del dict1
集合set
set同字典相比,只有key,没有value.