字典
1.基本结构键值对方式
dic = { "k1": "v1", # 键值对 "k2": "v2" }
2.字典的value可以是任何值
dic = { "k1": 18, #数字 "k2": True,#布尔值 "k3": [ #列表 11, [], (), 22, 33, { #字典 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], #元组 "k4": (11,22,33,44) }
3.列表、字典不能作为字典的key;特殊说明:布尔值可以当字典的key
dic ={ 3: 'asdf', "k1": 'asdf', True: "123", [11,22]: 123 #列表不可以当key (11,22): 123, {'k1':'v1'}: 123 #字典不可以当key #因为列表和字典都可以修改,而元组不能 }
4.字典是无序的
5.索引方式找到指定元素
dic = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } v = dic['k1'] print(v) #通过key找到value v1 = dic['k3'][5]['kk3'][0] print(v1) #value下是列表,可以通过索引的方式查找
6.字典支持 del 删除
dic = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } del dic['k1'] del dic['k3'][5]['kk1'] print(dic)
7.for循环
dic = { "k1": 18, 2: True, "k3": [ 11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22), } ], "k4": (11,22,33,44) } for k,v in dic.items(): print(k,':',v) #遍历key和values for k in dic: print(k) #默认遍历key值 for v in dic.values(): print(v) #选择遍历value值
常用方法:
1.创建字典,并指定统一值
v = dict.fromkeys(["k1",123,"999"],123) print(v)
输出:{'k1': 123, 123: 123, '999': 123}
2.根据Key获取值,key不存在时,可以指定默认值(None)
dic = { "k1": 'v1', "k2": 'v2' } v = dic.get('k3') print(v) #输出None v1 = dic.get('k4','zhang') #输出zhangsan
3.删除,并获取值
dic = { "k1": 'v1', "k2": 'v2' } v = dic.pop('k3',100) #删除k3对应的value,如果 print(dic,v) k,v = dic.popitem() #随机删除字典中的一个键值对,并且返回该键值 print(dic,k,v)
4.设置值
已存在,不设置,获取当前key对应的值 ,不存在,设置,获取当前key对应的值
dic = { "k1": 'v1', "k2": 'v2' } v = dic.setdefault('k1','123') # 已存在,不设置,获取当前key对应的值 print(dic,v) v1 = dic.setdefault('k4','234') #不存在,设置,获取当前key对应的值 print(dic,v1)
5.更新值
dic = { "k1": 'v1', "k2": 'v2' } dic.update({'k1':'update'}) print(dic)