python全栈 S3--12day--字典的魔法(7-10)
一、字典
1、表达方式:jay={"james":"hello","jake":"test"},"james":"hello"叫键值对,一个key,一个value,value可以是任意类型,也可以任意嵌套,key值可以是数字、字符串、元组、布尔值(注意可能会和1/0重复), 字典、列表是不可以的,因为列表元素能被修改
2、字典是无序的
3、通过key来获取value值
4、字典的表达方式
#字典的表达方式 jay={1:15,"jay":"jake",(1,2,3,4):{1,2,3,4},"jay":True}
# 字典的value值可以类型
jay={1:15,"jay":{"jay":"jake",(1,2,3,4):{1,2,3,4}},(1,2,3,4):{1,2,3,4},"jay":True}
print(jay)
# 字典的key值只能是数字、布尔值、字符串、元组,不能是列表、字典 jay={1:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} print(jay)
5、根据key值获取value值
jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
james=jay[12]
print(james)
jake=jay["jay"]
print (jake)
# 可以通过索引深层次的进行搜索value值 jay={"jaykjej":(11,3,4,5,6,7), 234:{"jayjay":124,124:True}, (234,"jaj"):True } james=jay[234][124] print(james)
6、不能根据切片进行取值,因为字典是无序的,元组不能删除元素,但是字典能通过key值进行删除
1 jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} 2 del jay[12] 3 print (jay)
7、字典支持for循环但是不支持while循环
#字典默认进行for循环时输出的是key值 jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} for james in jay: print (james) #字典进行for循环时可以特定输出value jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} for james in jay.values(): print (james) #字典进行for循环时可以特定输出key值,但是字典默认就是输出key值 jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} for james in jay.keys(): print (james) #字典进行for循环时可以特定key值,以及对应的输出value值,需要设定两个变量值 jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True} for v,s in jay.items(): print (v,s)
#######################################以下是字典的魔法#########################################
1、clear,清空
2、copy,浅拷贝
3、fromkeys的使用方法
# 表示传入值,如果传入一个值的话,将所有字符作为key值,value值为None,如果传入的是两个值的话,将第二个值作为所有的value值,传入的必须是一个可迭代对象 jay={"james":"jake"} nelly=jay.fromkeys("aimme",123) print (nelly)
4 、get,的使用方法
#get表示通过key获取value值,如果不使用get方法,获取一个不存在的key值,会直接报错,如果使用get方法,获取一个不存在的key值,会返回None # 如果获取一个存在的value值,会返回真实的值,如果获取一个不存在的value值,传上后面的参数会返回后面的参数值 jay={"james":"jake"} nelly=jay.get("aimme",123) print (nelly)
5、pop和popitem的使用方法,表示可以删除value值,也可以查看
1 #pop表示可以通过key值删除value值 2 jay={"james":"jake","v1":"v2"} 3 v=jay.pop("v1") 4 print (jay,v) 5 6 #pop表示可以通过key值删除value值,也能够获取到删除的value值 7 jay={"james":"jake","v1":"v2"} 8 v=jay.pop("v1") 9 print (jay,v) 10 11 12 #popitem表示可以删除键值对,这个不需要传入key值,这个既可以删除,也可以查看删除的键值对是什么 13 jay={"james":"jake","v1":"v2"} 14 v=jay.popitem() 15 print (jay,v)
6、setdefault的使用方法
# setdefault表示设置key值以及value值,如果没有的话,进行设置,如果有值的话就不会进行重新设置 jay={"james":"jake","v1":"v2"} jake=jay.setdefault("nelly",123) print(jay) jay={"james":"jake","v1":"v2"} jake=jay.setdefault("james",123) print(jay)
7、update表示更新,的使用方法
# update表示进行更新,支持两种表达方式 jay={"james":"jake","v1":"v2"} jake=jay.update({"james":123,"v2":"v1"}) print (jay) jay={"james":"jake","v1":"v2"} jake=jay.update(james=123,v2="v1") print (jay)
***************字典中常用的keys() values() items() get update
总结:
数字:int
字符串:replace find join strip startswith endswith split upper lower format
列表:append extend insert 索引、切片、for循环 元素可以被修改
元组:忽略 索引、切片、for循环 元素不能被修改
字典:get update keys values intems for循环 索引,也支持in操作
布尔值:bool(。。。) ,返回值为1和0
假的:None、空、0、除了这个其他的值都是真
浙公网安备 33010602011771号