Python之第四天的努力--字典
1.字典
-
容器型数据类型:dict
-
数据类型分类:可变与不可变
- 可变(不可哈希)的数据类型:list dict set
- 不可变(可哈希)的数据类型:str bool int tuple
-
字典:{} 以键值对形式存储在容器型数据类型
dic = {'zs': {'name':'zs','age':18,'sex':'男'}, 'ls': {'name':'ls','age':18,'sex':'女'} } -
键必须是不可变的数据类型 唯一的
-
值可以是任意数据类型,对象
-
字典的优点:查询速度非常快,存储关联性数据
-
字典的缺点:以空间换时间。
-
字典的创建方式:
# 方式一 # dic = dict((('one',1),('two',2),('three',3))) # print(dic) # 方式二 # dic = dict(one=1,two=2,three=3) # print(dic) # 方式三 # dic = dict({'one':1,'two':2,'three':3}) # print(dic) -
字典的增删改查
-
增
dic = {'name':'zs','age':18} dic['sex'] = '男' print(dic) dic['age'] = 20 # 改掉了 print(dic) # 有则改之 无则增加# setdefault dic = {'name':'zs','age':18} dic.setdefault('hobby','女') print(dic) dic.setdefault('age','20') print(dic) # 有则不变 -
删
# pop 按照键来删除键值对,有返回值 # 设置第二个参数则无论字典中有无此键都不会报错 dic = {'name':'zs','age':18} ret = dic.pop('age') # 值 print(ret) # dic.pop('age') print(dic) ret2 = dic.pop('hobby','没有此键') print(ret2) print(dic)# clear 清空 dic = {'name':'zs','age':18} dic.clear() print(dic)# del dic = {'name':'zs','age':18} del dic['age'] print(dic) -
改
# 改 dic = {'name':'zs','age':18} dic['name'] = 'ls' print(dic) -
查
# 没有会报错 dic = {'name':'zs','age':18,'hobby_list':['女','听歌','魔方']} print(dic['hobby_list'])# get ***** dic = {'name':'zs','age':18,'hobby_list':['女','听歌','魔方']} l1 = dic.get('hobby_list') print(l1) l2 = dic.get('hobby_list1','没有此键') # 可以设置返回值 print(l2)# keys() dic = {'name':'zs','age':18,'hobby_list':['女','听歌','魔方']} print(dic.keys()) # 可以转化成列表 print(list(dic.keys())) for key in dic.keys(): print(key)# values() dic = {'name':'zs','age':18,'hobby_list':['女','听歌','魔方']} print(dic.values()) print(list(dic.values())) for i in dic.values(): print(i)# items() dic = {'name':'zs','age':18,'hobby_list':['女','听歌','魔方']} print(dic.items()) print('\n') for i in dic.items(): print(i) print('\n') # 拆包 for a,b in dic.items(): print(a,b) -
# 练习 dic = {'k1':'v1','k2':'v2','k3':[11,22,33]} # 请在字典中添加一个键值对 'k4':'v4',输出添加后的字典 # 请在修改字典中'k1'对应的值为'hhh',输出修改后的字典 # 请在k3对应的值中追加一个元素 44,输出修改后的字典 # 请在k3对应的值的第一个位置插入元素 18,输出修改后的字典 print(dic) dic.setdefault('k4','v4') print(dic) dic['k1'] = 'hhh' print(dic) dic.get('k3').append(44) print(dic) dic.get('k3').insert(0,18) print(dic)
-
-
字典的嵌套
dic = { 'name':'汪峰', 'age':48, 'wife':[{'name':'国际章','age':38},], 'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'} } # 获取汪峰的名字 # 获取这个字典:{'name':'国际章','age':38} # 获取汪峰妻子的名字 # 获取汪峰的第三个孩子的名字 print(dic.get('name')) print(dic.get('wife')[0]) print(dic.get('wife')[0].get('name')) print(dic.get('children').get('girl_three'))

浙公网安备 33010602011771号