字典 类名:dict 字典是无序的。
字典的创建 info = {"k1":{1:"abc",[1,2,3]},"k2":True},可以进行字典的嵌套,value可嵌套任意类型。
列表不可以作为字典的key,元组可以,因为列表是动态的,可以修改,而元组不可以。布尔值会与1和0重复,则会不显示。
#字典的取值 info = {"k1":123,"k2":True,"k3":(12,"aaa",),"k4":"bbb"} v = info["k1"] print(v) ========> 123 n = info["k3"][0] print(n) ========> 12
字典的循环,可迭代对象
info = {"k1":18, "k2":True, "k3":(11,22,33,44,) "k4":[11,[],(),{"kk3":(123,"asd",),"kk2":"vv2","kk1":"♀"}] } #字典支持for循环,不支持while循环,因为key值是无序的。默认循环键keys,可通过values方法进行循环值 for item in info.keys/values: print(item,info[item]) #循环键值对的方法 .items() for k,v in info.items(): print(k,v)
字典的方法
#清空字典clear 字典名.clear() #copy浅拷贝 info ={"k1":18, "k2":True, "k3":(11,22,33,44,), "k4":[11,[],(),{"kk3":(123,"asd",),"kk2":"vv2","kk1":"♀"}] } n = info.copy() ########静态方法######## 支持dict(类名).方法名 #fromkeys()更具序列,创建字典,并指定统一的key值 v = dict.frokeys(["k1",123,"999"]) print(v) =========>{123:None,'k1':None,'999':None} a = dict.fromkeys(["k1",123,"999"],123) print(v) =========>{123:123,'k1':123,'999':123}
注意:静态方法 支持dict(类名).方法名
一般的取值时如果字典中不存在所取的key键,那么取值会报错,但是使用get方法不会。
#get根据key获取值,key不存在时,默认取值None,或者设置其他。 dic = {"k2":123} v = dic.get("k1",1111) print(v) ======>1111
#pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 ####语法:pop(key[,default])##### dic = { 'k1':'v1', 'k2:'v2' } v = dic.pop("k1",111111) print(dic,v) ======>{'k2':'v2'}111111 #popitem()不加参数,随即删除一个键值对 例如:dic.popitem()
setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
setdefault()方法语法:dict.setdefault(key, default=None)
#update更新 2种方式 dic = {"k1":'v1',"k2":'v2'} 方法1:dic.update("k1":123,"k3":'1111') print(dic) ========>{"k3":'1111',"k1":123,"k2":'v2'} 方法2:dic.update(k1=123,k3=345,k5="asdf") print(dic) ========>{'k1':123,"k5":asdf,"k3":345,"k2:'v2'}
重点:keys() 、valuses() 、 items() 、get() 、 update()
*****************************************整理前5节必会*******************************************
1.数字 int()
2.字符串 replace、find、join、strip、startswith、split、upper、lower、format、
#format常用方法,注意使用字典样式前面要加上** tempalte = "i am {name},age:{age}" v1 = tempalte.format(name="alex",age="18") v2 = tempalte.format(**{"name":'hex',"age":19}) print(v1,v2) =======>i am alex,age:18 i am hex,age:19
3.列表 append、extend、insert 索引、切片、循环
4. 元组 一级元素不能修改,索引、切片、循环
5.字典 keys() 、valuses() 、 items() 、get() 、 update()
6.布尔值 0 1
bool()转换为布尔值 None "" () [] {} 0 ======>False 其余都是真