Day05 字典
01 昨日内容回顾
02 作业讲解
03 字典
why:
1,列表如果存储大量的数据,查询速度相对慢一些。
2,列表存储的数据一般没有什么关联性。
[小潘, 175, 男,......]
针对以上因素,python提供了一个基础数据类型:dict字典。
数据类型的分类:
容器型数据类型:list,tuple,dict set。
非容器型数据类型:str bool int。
可变(不可哈希)的数据类型:list,dict,set。
不可变(可哈希)的数据类型:str,bool, int,tuple
what:字典:
{'name': 'alex'} 以键值对形式存储的数据类型。
1,字典的键必须是不可变(可哈希hash)的数据类型,唯一的不重复。
字典的值可以是任意数据类型(对象)。
2,字典的查询速度非常快。
3,字典在3.5包括3.5之前是无序的,但是3.6优化机制,字典会按照创建字典之初的顺序排列。
4,字典可以存储大量的关联性数据。
{'name': 'alex','python3期':['小潘','春哥', '二师兄'],
how:
增删改查
其他操作
where:
当你想构建大量的关系型数据的时候,用到dict。
dict = ['name':'addit','age':18,'height':170]
增 1) dict['weight'] = 129 有则覆盖,无则添加 2)dict.setdefault('name':'wen') ----name不会修改 dict.setdefault('weight') ---- ‘ weight ’: None 有则不改,无则加None
删 1)ret = dict.pop('name') 有返回值,对应返回值 ret1 = dict.pop('name1',‘没有此键’) ## 设置了返回值,不报错,返回‘没有此键’ 2) dict.clear() 清空列表 3)popitem() 删除最后一个键值对 ## python3.5以前是随机删除,3.6后面最后一个键值对 4)del dict # 删除整个字典 报错 del dict['name'] 删除这个键和值
改 1)dic['age'] = 30 2) dict1 = ['name':'addit','age':18,'height':170] dict2 = ['name':'wen','age':17','sex':'male'] dict1.update(dict2) # print(dict1) # ['name':'addit','age':18,'height':170,'sex':'male'] print(dict2) # ['name':'wen','age':17,'sex':'male'] dict1.update(weight=120,a=1) ###['name':'addit','age':18,'height':170,'sex':'male','weight':120,'a':1]
查:
1) #按照键查对应的值
print(dic['name']) 不存在则报错
2) dict.get()
ret = dict.get('age')
ret1 = dict.get('age1','没有此键‘) 不存在则返回一个None
3)直接循环字典:
下面三个都是返回一个类似于列表的容器的特殊数据类型。
1.. dict.keys() for key in dict.keys()
2.. dict.values() for v in dict.values()
3.. dict.items() for k,v in dict.items()
其他操作:
1) dict.fromkeys(seq,value) 返回一个新字典
Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。 dic = dict.fromkeys('abc', '春哥') dic = dict.fromkeys([1,2,3],['alex]) 坑:值如果是可变的数据类型,那么所有的值都是一个内存地址 dic[1].append(666) print(dic) ### {1:['alex',666],2:['alex',666],3:['alex',666]}
2) 格式化输出的第二种
dic = {'name': '太白', 'sex': '男', 'age': 18}
msg = '我叫%(name)s,今年%(age)s,性别%(sex)s' % dic
msg = '我叫{},今年{},性别{}'.format(dic['name'],dic['age'],dic['sex'])
其他内容:
分别赋值: a,b = b ,a a,b,c = (100,200,300) a,b,c = [100,200,300]
04 字典的嵌套
找到字典的键,然后对对应值进行操作
05 集合(了解)

浙公网安备 33010602011771号