一、变量的数据类型(3)
1. dict
字典dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
2.增删改查
增加
dic[key] = value
dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
可以通过key查询,没有这个key返回None
删除
pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除
clear() 清空字典
修改
dic[key] = value
dic.update(字典)
查询
get(key)
dic[key]
for 循环
setdefault(key)
字典的其他操作:
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
字典的嵌套:
列:
dic = {
'name':'汪峰',
'age':43,
'wife':{
'name':'国际章',
'age':39,
'salary':100000
},
'baby':[
{'name':'熊大','age':18},
{'name':'熊二','age':15},
]
}
二、解构
解构是将后边解构打开按位置赋值给变量
支持 字符串 列表 元组
例子练习:
一、将字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}
利用解构来将字典里面对应的键值对输入,也可以使用切片方法。
代码如下:
1 s = "k:1|k1:2|k2:3|k3:4" 2 new = {} 3 s = s.split("|") 4 # for i in s : 5 # s =i.split(":") 6 # new[s[0]]=int(s[1]) 7 # print(new) 8 for i in s: 9 a,b=i.split(":") 10 new[a] = int(b) 11 print(new)
二、元素分类有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
代码如下:
1 li= [11,22,33,44,55,66,77,88,99,90] 2 new = {"k1":[],"k2":[]} 3 for i in li : 4 if i > 66: 5 new.setdefault("k1").append(i) 6 elif i < 66: 7 new.setdefault("k2").append(i) 8 print(new)