5.字典魔法
字典魔法
字典
字典由大括号括起,每个元素由键和值组成,称为键值对,键和值之间有冒号隔开,每个元素之间由逗号分隔;
字典可以无限嵌套;
字典是无序的,可以进行删除和增加操作;
字典不能通过索引下标取值,必须通过键值对进行取值;
列表、字典、集合不能作为字典的键、字符串、整形、元组、布尔值可以作为字典的键,字典的键必须是不可变数据类型,字典的值可以为任何数据类型。
字典,如:di = {'k1':10,'k2':True,'k3':[11,22,33],'K4':{'a1':110,'b1':[999,1000]},'k5':(12,23,34)}。
字典魔法
1.clear(self):清空字典
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 info.clear()
3 print(info)
4 # =>{}
2.copy(self):复制拷贝字典,浅拷贝
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 dic = info.copy()
3 print(dic)
4 # =>{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55), 'k5': [66, 77, 88]}1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 dic = info.copy()
3 print(dic)
4 # =>{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55), 'k5': [66, 77, 88]}
3.fromkeys(*args, **kwargs):根据序列,创建字典,并指定统一的值
1 dic = dict.fromkeys('一',1) # 根据字符串,创建键(key),1为值(value) 2 print(dic) 3 # =>{'一': 1} 4 dic1 = dict.fromkeys(('k1','k2','k3',)) # 根据元组,创建键(key) 5 print(dic1) 6 # =>{'k1': None, 'k2': None, 'k3': None} 7 dic2 = dict.fromkeys(('k1','k2','k3',),111) # 为键统一指定值 8 print(dic2) 9 # =>{'k1': 111, 'k2': 111, 'k3': 111} 10 dic3 = dict.fromkeys(['k1','k2','k3'],111) # 根据列表生成键值对 11 print(dic3) 12 # =>{'k1': 111, 'k2': 111, 'k3': 111} 13 dic4 = dict.fromkeys('我',(111,222)) 14 print(dic4) 15 # =>{'我': (111, 222)} 16 dic5 = dict.fromkeys('我是你',(111,222)) 17 print(dic5) 18 # =>{'我': (111, 222), '是': (111, 222), '你': (111, 222)}
4.get(self, *args, **kwargs):根据key获取值,key不存在时,返回默认值(None),可以指定任意值
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 v = info.get('你好') # 没有“你好”的键(key),返回None
3 print(v)
4 # =>None
5 v = info.get('k2') # 有键'k2',返回值22
6 print(v)
7 # =>22
8 v = info.get('你好',666) # 没有键“你好”,指定了返回值666,就返回666
9 print(v)
10 # =>666
11 v = info.get('k2',666) # 有键'k2',返回'k2'相对应的值22
12 print(v)
13 # =>22
5.keys(self): 提取字典的键
6.values(self): 提取字典的值
7.items(self): 提取字典的键和值
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 for i in info.keys(): # 循环键(key)
3 print(i)
4 # =>k1 k2 k3 k4 k5
5 for i in info.values(): # 循环值(value)
6 print(i)
7 # =>11 22 33 (44, 55) [66, 77, 88]
8 for i,o in info.items(): # 同时循环键(key)和值(value)
9 print(i,o)
10 # =>k1 11 k2 22 k3 33 k4 (44, 55) k5 [66, 77, 88]
8.pop(self, k, d=None):删除指定键和对应的值,并且可以获取要删除的键和值
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 v = info.pop('k5')
3 print(v)
4 # =>[66, 77, 88]
5 print(info)
6 # =>{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55)}
9.popitem(self): 随机删除一个键值对,也可进行获取其删除掉的键值对
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 v = info.popitem()
3 print(info)
4 # =>{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55)}
5 print(v)
6 # =>('k5', [66, 77, 88])
10.setdefault(self, *args, **kwargs):设置值,已存在,不设置,获取key对应的值;不存在,设置,获取当前key对应的值。可用于获取值或添加键和值
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 v = info.setdefault('k1')
3 print(v)
4 # =>11
5 print(info)
6 # =》{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55), 'k5': [66, 77, 88]}
7 v = info.setdefault('ok','are you')
8 print(v)
9 # =>are you
10 print(info)
11 # =>{'k1': 11, 'k2': 22, 'k3': 33, 'k4': (44, 55), 'k5': [66, 77, 88], 'ok': 'are you'}
11.update(self, E=None, **F):更新字典
1 info = {'k1':11,'k2':22,'k3':33,'k4':(44,55),'k5':[66,77,88]}
2 info.update({'k1':110,'are':'you ok'})
3 print(info)
4 # =>{'k1': 110, 'k2': 22, 'k3': 33, 'k4': (44, 55), 'k5': [66, 77, 88], 'are': 'you ok'}
5 info.update(k1=1234,k2=5678,k3=9090)
6 print(info)
7 # =>{'k1': 1234, 'k2': 5678, 'k3': 9090, 'k4': (44, 55), 'k5': [66, 77, 88], 'are': 'you ok'}

浙公网安备 33010602011771号