不可变(可哈希)的数据类型:int,str,bool,tuple。
可变(不可哈希)的数据类型:list,dict,set。
子弹优点:字典的查询速度非常快
字典缺点:他的缺点就是内存消耗巨大。
字典的创建方法:
#dick字典的创建
#方法一
dic=dict((('ont',1),('two',2),('thrre',3)))
print(dic)
#方法二
dic2=dict(ont=1,two=2,three=3)
print(dic2)
#方法三 最常用
dic3=dict({"ont":1,"two":2,"three":3})
print(dic3)
验证字典的合法性
dic1={[1,2,3]:"laex",1:666} #键要是不可变的数据类型
print(dic1)
dic2={1:"alex",1:"小白",2:"wusir"} #键是唯一的
print(dic2)
字典的 增 删 改 查 重点
字典的增删改查
增 通过键值对直接增加
dic={"name":"太白","age":18}
dic["wenght"]=75 没有这个weight这个键,就增加值对
print(dic)
dic={'name':"太白",'age':18}
dic['wenght']=75
print(dic)
dic['name']='小白'
print(dic)
dic["name"]="barry" 当有name这个键的时候就会变更name里面元素的内容
print(dic)
#setdefault ***重点***
dic={"name":"太白","age":18}
dic.setdefault("height",175) 没有”height“就直接添加这个键
print(dic) #{'name': '太白', 'age': 18, 'height': 175}
dic.setdefault("name","darry")#有name这个键,就不会变
print(dic) #{'name': '太白', 'age': 18, 'height': 175}
dic={"name":"太白","age":18}
alex=dic.setdefault("name")
print(alex) #会返回name里面的值出来
删
pop ***重点***
dic={"name":"太白","age":18}
# ret=dic.pop("name")
# print(dic,ret)
ret1=dic.pop("n",None)
print(ret1,dic)
dic={"name":"太白","ahg":18}
ret=dic.popitem() #默认删除最后一个,有返回一个值
print(ret,dic)
clear清空字典里面的内容
dic={"name":"太白","age":18}
dic.clear()
print(dic)
改
通过键值直接改
dic={"name":"太白","age":18}
dic["name"]="barry"
print(dic) # {'name': 'barry', 'age': 18}
zneg
update
dic={"name":"太白","age":18}
dic.update(sex="男",height=175)
print(dic) #{'name': '太白', 'age': 18, 'sex': '男', 'height': 175}
dic={"name":"太白","age":18}
dic.update([(1,"a"),(2,'b'),(3,'c'),(4,'d')])
print(dic)
dic1={'name':"jin",'gae':18,"sex":"male"}
dic2={"name":"alex","weight":75}
dic1.update(dic2)
print(dic2)