1. 定义:
Dictionnary(字典)是Python最常用的数据类型,它使用方括号{}来标识,其元素为key-value对应,key与value用冒号:分割开。字典元素刻印是任意类型,但是元素key值必须为不可变变量(只能为字符串,数字,元组,不可变集合(frozenset())),value的值没有限制,key值如果重复,后面的key-value会覆盖之前的(相当于重新赋值)。字典是可变变量。
2. 创建字典:
多类型key值字典
使用变量作为key
3. 字典内容获取:
因为字典元素是由key-value组成的,因此访问元素需要通过key来实现
当访问的key不存在时,则会报异常:
字典是无序的,因此不支持索引和切片操作
4. 字典基本操作:
4.1 len(字典):返回字典长度(也就是key的个数)
4.2 str(字典):将字典转换为字符串(不可逆)
将字符串转换为字典,系统将会报错
4.3 max,min函数同样适用字典,操作的对象是key(字典存关心的是value的值),并且key的值只能为数字类型,因此意义不大
5. 更新字典:
5.1 修改指定key对应value的值
字典[key] == x
5.2 删除字典元素
del 字典[key]
字典为可变变量,修改元素后地址不改变
6. 字典内置函数:
6.1 字典.clear(): 清空字典
6.2 字典.copy():浅拷贝字典(拷贝之后,地址发生改变)
区别于 复制操作:将字典的地址赋值给新的变量(注意不是值,而是地址,复制操作相当于增加外号)
区别于深拷贝(借助copy模块使用)
浅拷贝是将值赋值给新的变量,但是如果value中存在序列或者集合时,value的值则没有进行拷贝
![]()
由此可以看出,浅拷贝时,当value的元素为可变变量时,修改该value时,会影响到其他变量,因此此处需要深拷贝,使用深拷贝,需要借助copy模块实现
6.3 dict.fromkeys(seq, val=None): 使用seq序列或者集合作为key,并将所有的value设置为val(val可以省略,此时所有的value为“None”)
注意:因为序列的作用是作为字典的key,因此序列或集合中不能包含可变变量,本身则无限制
6.4 字典.get(key,default=None) 判断key对应的value值是否存在,存在则返回对应的value值,不存在则返回default对应的值,默认为None
6.5 字典.setdefault(key, default=None):如果对应的key不存在,在将key-default加入字典
6.6 字典.keys():返回所有key(其类型为dict_keys),可以通过for循环获取数据
6.7 字典.values():返回字典所有value值
6.8 字典.items() :以列表的方式返回可以遍历的(键 值)元组
6.* 字典.update(dict2):将字典dict2中的键值对添加到字典中
6.10字典.pop(key [,default]): 删除指定key对应的值,若key存在,则删除key对应的值,并返回,default忽略;若key不存在,返回default,default不存在时,返回异常。
6.11 字典.popitem():随机删除字典中的一对键值(一般是末尾一对)
6.12 key in 字典 :判断key是在在字典中