Python 基础第五天
主要内容:
1.字典的介绍
2.字典的增删改查
3.字典的嵌套
1.介绍
dic字典是python中唯一的映射类型.key-value
用途:储存大量的数据,而是关系型数据,查询速度快
dic = {
# key:value
'name':'老男孩',
'age':17,
'name_list':[杰哥 民歌 花心哥 狗友 芳芳 恒富 ],
1:True.
.....
}
值可以对应任意类型,键不一定对应任意类型
数据类型分类:
可变数据类型(不可哈希):list,dict,set。
不可变数据类型(可哈希):int,bool,str,tuple.
字典的键:不可变数据类型。
字典的值:任意数据类型。
容器类型:
容器类(承载各种数据类型):list,tuple,dict。.
字典的键是唯一的。
字典的顺序:
3.5之前,字典是无序的。
3.6开始,字典创建的时候,按照一定的顺序插入的数值,看起来是有序的。
字典的增删改查
dic = {"name":"jin",
"age":18,
"sex":"male",
}
1.增
第一种:有则覆盖,无则添加
dic['hobby'] = 'girl'
print(dic)
dic['name'] = 'alex'
print(dic)
第二种:setdefault 无则添加,有则不变
dic.setdefault('键名','值')
dic.setdefault('hobby') ==> 结果为None. 字典值的位置
dic.setdefault('hobby','girl')===>结果:'hobby':'girl'
dic.setdefault('name','ritian') ===>结果还是之前的
*删
pop 有返回值
#删除存在的数据,默认没有返回值,添加也不会显示
print(dic.pop('age'))
print(dic)
#删除不存在的key,报错
dic.pop('hobby')
#删除不存在的key,添加返回值的时候,会显示当前的字典,不报错.
li = dic.pop('age','没有数据')
print(li) #显示添加的返回值,'没有数据'
print(dic) #显示现在的字典 没有报错
*clear 清空字典
dic.clear()
*del
1.删除字典
del dic
2.删除字典的键
del dic['name']
printe(dic)
3.删除字典中不存在的键,报错
del dic['name_list']
printe(dic)
*popitem 随机删除,有返回值
l1 = dic.popitem() 3.6之前版本可以实现,3.6版本测试后,没有这个现象.
print(l1) #查看返回值(删除的数据)
print(dic)
改
*第一种情况
dic['name'] = '太白'
printe(dic)
*第二种,两个字典的改 update
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic) #将dic键值对覆盖并添加到dic2
print(dic2)
查
*1.通过键查找
print(dic['name'])
print(dic['name1']) #没有此键,报错
*2.get()
print(dic.get('name'))
print(dic.get('name1')) # 默认返回None
print(dic.get('name1','没有此键值对')) #返回值为填入的数据 '没有此键值对'
*3.其他方法
key() values() items()
key() #把dic中所有的键放在一个列表里
values()#把dic中所有的值放在一个列表里
items()#把dic中每一对的键值放在元组里,然后在把元组放在一个列表里
*可以通过上述方法,把dic--->list
print(list(dic.keys()))
print(dic.keys(),type(dic.keys())) #查看此字典内的所有键,并查看键的类型
结果:dict_keys(['name_list', 'dic2', 'name', 'hobby']) <class 'dict_keys'>
例:
for i in dic.keys():
print(i)
for i in dic:
print(i)
两个得到的结果相同,都是遍历dic中key值
print(dic.values()) #获取字典中的值
for i in dic.values():
print(i)
print(dic.items()) #获取键值对
分别赋值的概念,即同时创建两个变量进行赋值
例1
a,b = 2,3
print(a,b)
例2
print(dic.items())
for k,v in dic.items():
print(k,v)