5 字典
一.字典
1.成对的储存数据,以key,value的形式保存数据
2.字典的key是不重复的,是通过哈希算法,哈希算法得到的是唯一一个数字(可以是正,也可以是负数)
哈希算法是无序,字典中的key必须是可哈希的,不可变数据类型
1.不可变数据类型:
字符串,int,bool,tuple元组
2.可变数据类型:
list dict set
3.增删改查
1.增
dic[key]=value 如果key已经存在,则会覆盖
setdefault(key,value) 如果key已经存在,则不做任何操作;key不存在则会新增
2.删
dic.pop(key)
dic.popitem() 随机删
del dic[key]
dic.clear()
3.改
dic[key]=new value key存在,则该为new value ;key不存在,则会创建
dic.update(dic2) 把字典dic2 的覆盖添加到字典dic中
4.查
print(dic[key]) key存在,则打印key对应的value ;key不存在,则会报错
print(dic.get(key,自定义的返回值) 如果key存在,则返回key对应的value,不存在则返回自定义的返回值
dic.setdefault(key,自定义value)
如何key不存在则返回自定义value,如果key存在则返回key对应的value值 ret=dic.setdefaut(key,自定义value)
6.常见操作
dic.keys()
dic.values()
dic.items()
循环打印key:
for key in dic:
print(key)
循环打印key,value
for key,value in items:
print(key,value)
#字典的增删改查 #一.增 #1.增 dic[key]=value 如果key已经存在就会覆盖 ,不存在就会新增 dic={} dic["刘德华"]="练习" #2. dic.setdefault(key,value) #key存在就不做操作,key不存在则会新增 dic.setdefault("王力宏","心跳") dic.setdefault("刘德华","无间道") # print(dic) # 二.删 dic1={'刘德华': '练习', '王力宏': '心跳',"陈奕迅":"十年","王俊杰":"他说"} # dic1.pop("刘德华") # print(dic1.popitem() )#随机删 # del dic1["刘德华"] # dic1.clear() #清空 # print(dic1) #三.改 # dic2={"王菲":"因为爱情","陈奕迅":"约定"} # dic1["刘德华"]="无间道" #dic[key]=new value # dic1.update(dic2) #dic2中的覆盖添加到dic1中 # print(dic1) #.查 print(dic1["刘德华"]) #dic1[key] key存在,则返回value;key不存在则报错 print(dic1.get("刘德华")) #dic1.get(key) key 存在,则返回value,key不存在则返回None print(dic1.get("周华健","不存在")) #dic1.get(key,自定义的返回值) key 存在,则返回value,key不存在则返回自定义的返回值 dic2={"王菲":"因为爱情","陈奕迅":"约定"} ret1=dic2.setdefault("王菲","存在") print(ret1) #因为爱情 因为"王菲"这个键存在,所以通过setdefault方法返回的是dic2["王菲"]===>因为爱情 ret2=dic2.setdefault("周华健","朋友") print(ret2) #朋友 因为"周华健"这个键在字典dic2不存在,所以通过setdefault方法创建出的键值对,返回的是新value"朋友"
有疑问可以加wx:18179641802,进行探讨