一、dict基础知识
Python 内置了字典:dict的支持,dict全程dictinoary,在其他语言中也称为map,使用键<->值(key-value)储存,具有极快的查找速度。字典是一种映射类型
如下,我们要根据同学的姓名去查询对应的身高,如果我们使用list实现,我们需要用到两个list。
我们在上面使用两个list实现了一个映射关系,但是当我们的元素越来越多时,那么需要的时间就越久,如果我们使用dict实现这个事例,只需要一个“名字<->身高”的一个对照表即可,而且无论这个表有多大,查找速度都不会变慢。
dict 的标志性符号是“{ }”,并且它由多个键(key)和其对应的值(value)组成,每一对键值组合我们称之为象,一个key只能对应一个value,多次对一个key放入value,后面的值会将前面的值冲掉
如果我们使用的key值如果不存在,那么就会报错
二、dict的创建
我们创建一个dict可以使用我们上面使用到的方法外,还有下面的几种特殊的方式(一)创建一个空的dict
dict1 = {}
(二)使用dict()函数
使用dict()函数我们也可创建一个字典,下面我们就使用可迭代对象的方式来构造字典
dict1 = dict(((1,'one'),(2,'two'),(3,'three')))
dict2 = dict([[1,'one'],[2,'two'],[3,'three']])
使用key=value的形式
(三)直接给字典的键赋值
如果我们的键已经存在,那么我们会改写当前键的值,如果不存在,那么就会添加该键 ,如下
我们看到,已经在dict3里面新建了一组对象。
(四)fromkeys
在dict数据类型,有一种内置方法函数fromkeys() 我们使用它可以对在创建字典时,同时对多个键值对
的值进行初始化。比如: 我们需要创建一个保存用户账号和密码字典,并要求所有密码的初始值为‘000’
print({}.fromkeys({'user1', 'user2','user3'}, '000000'))
fromkeys第一个参数可以列表/tuple/str/set
但是注意当我们使用str作为第一个参数时,我们他会将我们的字符串的每一个字符都作为字典的键值
key。
三、dict的增、删、查
(一)增
(1)增加一个元素
如果key值存在,则更新对应的value值,如果key值不存在则添加相应的key-value键值对。
key不存在:
key存在:
(2)增加多个键值对
我们使用dict的内置方法函数,update()方法函数,如果key值存在,则更新对应的value值,如果key
值不存在则添加相应的key-value键值对。
dict.update(dict2) #dict2 --添加到指定字典dict里的字典 , 也就是说update方法的参数只能是字典
(3)setdefault()方法
dict.setdefault(key, default=None) #key -- 查找键值 default -- 键不存在时,设置的默认值
值不存在,则添加相应的key-value键值对,返回为该键设置的值
key不存在:(二)删
(1)del
(2)pop()
pop(key[,default]) #key -- 要删除的键值 , default -- 如果没有key值,返回default 值 :该函数返回被删除的值key存在:
(3)popitem()
dict.popitem() #该方法随机返回并删除字典中的一个键值对(一般是末尾对),如果字典已经为空,直接报错.
(1)查看字典的所有键值
(2)查看字典的所有键对应的值
使用dict.values()方法可以查看字典的所有键对应的值, 函数以列表返回一个字典所有的值。(3)查看字典的所有键值对
使用dict.item()方法可以查看字典的所有键值对, 函数以列表返回可遍历的(键, 值) 元组数组
(4)get() 查看key值是否在字典中存在
dict.get(key, default=None) #key -- 字典中要查找的键 default -- 若果指定的键不存在,返回改默认值。