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 # =>{}
View Code

  

  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]}
View Code

  

  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)}
View Code

  

  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
View Code

  

  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]
View Code

  

  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)}
View Code

  

  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])
View Code

  

  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'}
View Code

  

  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'}
View Code

 

posted @ 2020-04-27 21:22  星落……  阅读(459)  评论(0)    收藏  举报