字典简述:
字典是python中的一种数据结构类型,名字来源于生活,它的工作模式类似于我们查字典的过程。从数学的角度想就是 映射的表现形式。 一个字典由多项构成,每项又包括一对“键值对”,键就相当于列表种的索引,每个键对应一个值,每 个字典里不能有重复的键,但是键所对应的值可以是不唯一的;与列表不同的是字典的项是无序的。
因为字典是无序的,所以字典不支持索引、切片,重复、连接也是没有意义的。
字典的优势:
在生活中映射的模型非常多,所以字典自然也就应用广泛。
比如我们手机上的电话簿,我们想寻找某人的电话号码,就会通过他的名字去查找他的电话号码,下面的例子如果我们将名字和电话号码分别放在两个列表中,然后通过索引去得到相应的电话号码显然是很麻烦的,如下图:
通过从name列表中得到索引再去pho_num列表中去查找对应的电话号码:
若能利用字典这种数据结构,以上的过程就会i大大简化。
字典的创建:
1.方式一:直接创建
这时我们想得到某个人的电话号码,只需输入键值,就能得到他的号码:
2.方式二: 利用dict()函数创建:
1):通过其它映射序列建立字典:
2)通过关键字:
3.空字典的创建:
4.字典的嵌套:
查找嵌套字典中相应的元素:
字典的基本操作:
定义一个字典:
下方图片是字典的基本操作方式:
上图代码执行的结果:
字典的方法:
1. clear( ) : 清空字典
2. copy(): 进行替换操作时不会改变原字典的项; 但是修改(原地修改)了某个值后,原字典会被修改
定义一个字典,并进行浅复制:
对复制后的字典进行替换操作后,并没有影响原字典的内容:
但若进行了原地修改这类操作,就会影响原字典的项:
3.deepcopy():深复制,这种复制方法就解决了上一个浅复制遗留的问题:
4.fromkeys():用给定的键建立新字典,键默认对应的值为None,也可以指定键默认对应的值。
5. get(): 比较宽松的查看字典中value值的方法:
6.items() : 将字典中的所有项以列表的方式返回:
7.keys(): 将字典中的键以列表的方式返回:
8. values() : 将字典中的值以列表的方式返回:
9.pop(): 找到字典中指定key值对应的value值返回,并将该项从字典中删除。若key不存在会报错
10. popitem(): 随机弹出字典中的项:
11. update():用来更新原来字典中需要修改的项和添加原来不存在现在要添加进去的项
12. setdefault( )
用法一 : 当字典中不存在某个键值时,可以使用setdefault()去添加键值或者键对值。
用法二: 和get() 的用法一样,得到某key值所对应的value值,若value值不存在则返回None。