1 info={"k1":"v1","k2":"v2"} 2 v=info.setdefault("k3",123) 3 print(info,v) 4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: 123} 123
字典dict
1.字典的元素是键值对,各个元素用逗号分隔,基本结构如下:
info={"k1:v1","k2:v2"}
2.字典的键(key)只可以是数字,字符串,元祖,布尔值
注意:布尔值(False,True)为key时,可能与数字(0,1)作为key重复,只会承认数字那个key,例:
1 info={"k1":"v1",1:"v2",True:"v3"} 2 print(info) 3 #结果:{‘k1‘: ‘v1‘, 1: ‘v3‘}
3.值(value)可以是任意数据类型(数字,字符串,bool,列表,元祖,字典),可嵌套多次
4.字典是无序的
5.通过键取字典值,info[‘k1‘]
例:
1 info={"k1":18,2:True,"k3":[11,22,33,{‘kk1‘:‘vv1‘,‘kk2‘:‘vv2‘,‘kk3‘:(99,66)}],"k4":(11,22,33,44)} 2 v=info["k3"][3]["kk3"][0] 3 print(v) 4 #结果:99
6.字典支持元素删除(键值对),例:del info["k4"]
7.字典for循环默认循环的是key
-若想循环value,需要使用dict类的value()方法,例:
1 info={"k1":"v1",2:True,(12,"dd"):[1,2,3]} 2 for item in info.values(): 3 print(item) 4 #结果:v1 5 # True 6 # [1, 2, 3]
-若要获取键值对,则使用dict类的item()方法,例:
1 info={"k1":"v1",2:True,(12,"dd"):[1,2,3]} 2 for k,v in info.items(): 3 print(k,v) 4 #结果:k1 v1 5 # 2 True 6 # (12, ‘dd‘) [1, 2, 3]
8.字典dict类的方法:
-clear():清空所有键值对,例:
1 info={"k1":"v1","k2":"v2"} 2 info.clear() 3 print(info) 4 #结果:{}
-copy():拷贝一个字典,例:
1 info={"k1":"v1","k2":"v2"} 2 info2=info.copy() 3 print(info2) 4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘}
-fromkeys():根据参数给的序列,创建字典,并指定统一的值。此方法是静态方法,可用类dict直接调用,无需创建对象。例:
1 v=dict.fromkeys([4,"abc",True],123) 2 print(v) 3 #结果:{4: 123, ‘abc‘: 123, True: 123}
-get():根据key获取值,key不存在时,返回参数2指定的值(不指定参数2,默认返回None),例:
1 info={"k1":"v1","k2":"v2"} 2 v=info.get("k3",444) 3 print(v) 4 #结果:444
-pop():指定某个key删除,返回删除的value,例:
1 info={"k1":"v1","k2":"v2"} 2 v=info.pop("k1",444) 3 print(info,v) 4 #结果:{‘k2‘: ‘v2‘} v1
若指定的key不存在,返回参数2指定的value值,例:
1 info={"k1":"v1","k2":"v2"} 2 v=info.pop("k3",444) 3 print(info,v) 4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} 444
-popitem():随机删除一个键值对,返回删除的键值对
1 info={"k2":"v2","k1":"v1","k3":"v3"} 2 k,v=info.popitem() 3 print(info,k,v) 4 #结果:{‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} k3 v3
-setdefault():指定key设置值
若key已经存在,则不会设置值,返回当前key对应的值,例:
1 info={"k1":"v1","k2":"v2"} 2 v=info.setdefault("k1",123) 3 print(info,v) 4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} v1
若key不存在,添加key并设置值,返回设置后key对应的值,例:
1 info={"k1":"v1","k2":"v2"} 2 v=info.setdefault("k3",123) 3 print(info,v) 4 #结果:{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: 123} 123
-update():存在的key,值覆盖,不存在的key,追加更新,例:
info={"k1":"v1","k2":"v2"} info.update({"k1":1,"k3":3}) print(info) #结果:{‘k1‘: 1, ‘k2‘: ‘v2‘, ‘k3‘: 3}
1 info={"k1":"v1","k2":"v2"} 2 info.update(k1=1,k3=3) 3 print(info) 4 #结果:{‘k1‘: 1, ‘k2‘: ‘v2‘, ‘k3‘: 3}
原文地址:https://www.cnblogs.com/hm-blog/p/9925981.html