#Python3 [字典】类型 学习笔记
一、字典类型基本知识:
1、字典是一种可变容器模型,且可存储任意类型对象。
2、字典采用 键值对的方式存储对象,键:值对之间用冒号(:)对应,每个对用逗号(,)分隔,每个字典包含在 { } 之中。
例:a={k1:v1,k2:v2,k3:v3}
3、键必须是唯一的,但值不必须。
4、值可以是任意数据类型,但键必须是不可变的。
二、字典的基本操作:
1、字典的创建
(101)直接定义创建:dict={'a':'123','b':5}
(102)函数创建:fromkeys( ):
语法:dict.fromkeys(seq [,value]) #seq:字典键的列表;value:可选参数, 设置键序列(seq)对应的值,默认为 None。返回一个新字典。
例:seq=['name','age','sex']
dict=dict.fromkeys(seq) #字典键对应的值 默认为:None。
或:dict=dict.fromkeys(seq,10) #字典键对应的值 为:10
2、字典值的访问:通过键名获取键值:例:dict['a'] 【如果键名不存在,则报错】
3、字典值的修改:通过键名修改键值:例:dict['a']='456'
4、字典值的删除:
(401)通过键名删除键值:例:del dict['a']
(402)通过键名删除键值:例:pop( )函数 #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
语法:pop(key [,default]) #key:要删除的值的键名;dault:当key不存在时,返回的默认值;如果当key不存在时,没有默认值,系统则会报错。
(403)dict.popitem() :随机返回并删除字典中的最后一对键和值;如果字典已经为空,却调用了此方法,就报出KeyError异常;返回删除的(键值对)。
(404)清空字典:dict.clear() #删除索引字典的元素。
(405)删除字典:del dict #没有了这个字典变量
三、字典键:值的特性:
1、字典的值:可以是Python的任意类型。可以是是标准类型,也可以是用户自定义类型。
2、字典的键:
(201)必须不可变,键可以用字符串、数字、元组,但列表不行。
(202)键名不能重复,如果重复,系统只认最后一个。
四、字典内置函数:字典:dict={‘name’:'wang','age':18,'sex':'男‘’}
1、len(dict):获取字典元素个数。
2、str(dict):输出字典,以字符串的方式表示。
3、type(dict):如果dict是字典类型,则输出类型字典。
4、dict.copy( ):字典的拷贝。
5、dict.get(key,default=None):获取键所对应的值,如果键不存在,则返回默认值。
6、dict.setdefault(key,dault=None):获取键所对应的值,如果键不存在于字典中,将会添加键并将值设为默认值。
7、key in dict:判断键key是否在字典dict中。在返回True,不在返回False。【或 key not in dict】
8、dict1.update(dict2):把字典dict2的键值对更新到字典dict1中。【把字典2的键值对,合并到字典1中】
9、dict.items():以列表方式返回视图对象,是一个可遍历的key/value 对。
例:
dict={'name':'wang','age':18,'sex':'男'}
print(dict.items())
for k,v in dict.items():
print('k:',k ,'\n','v:',v)
显示:
dict_items([('name', 'wang'), ('age', 18), ('sex', '男')])
k: name
v: wang
k: age
v: 18
k: sex
v: 男
10、dict.keys():返回一个视图对象;提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。视图对象不是列表,不支持索引,可以使用 list() 来转换为列表;我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。
例:keys=dict.keys() #获取字典 键的列表。返回的是列表。
11、dict.values:返回一个视图对象;提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。视图对象不是列表,不支持索引,可以使用 list() 来转换为列表;我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。
例:values=dict.values() #获取字典值的列表。返回的是列表。