###### day 5 字典 dictionary #数据的类型: #1,可变的数据类型:list,dictionary,set 不可哈希 #2,不可变的数据类型:tuple,int,str,bool 可哈希 #字典由键(key)和值(value)组成 #字典的key也就是键是不可变的数据类型:tuple,int,str,Boo #而对于value可以是任意的数据类型 #dictionary的优点:二分查找去查询,存储大量的关系型数据 #key 不可以重复,value 可以重复,也可以理解为字典中的K有就覆盖,没有就添加 #字典的增 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic[5]="美满" print(dic) dic={"name":"LInda"} dic.setdefault("age")#setdefault 没有就添加, print(dic) dic={"name":"LInda"} dic.setdefault("age",18) print(dic) dic.setdefault("name")#没影响 print(dic) dic.setdefault("name","Chichy")#字典中已经有name,不会再改变 print(dic) #result #{'name': 'LInda', 'age': None} #{'name': 'LInda', 'age': 18} #{'name': 'LInda', 'age': 18} #{'name': 'LInda', 'age': 18} #字典的删 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic.pop(1)#有返回值value print(dic) #若键在字典中就删除对应的键和值,若键没在字典中就会报错,pop中必须要有一个参数 #否则会报错 #但是这样写就算k值没在字典中也不会报错dic.pop(8,None),不会删除字典中的任何一个值 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic.popitem()#在3.7.2这个版本中默认的是删除最后一个,有返回值,以元组的形式把最后一个元素返回 print(dic) dic.pop(1,None)#但是若K在字典中,则会删除,不再不删除,不会报错 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic.clear()#清空字典 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} del dic[1] print(dic) dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} del dic #删除整个字典 #字典的改 dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic1={1:"才华",5:"梦想"} dic1.update(dic)#有的就不改变 print(dic1) #{1: '金钱', 5: '梦想', 2: '爱情', 3: '美貌', 4: '气质'} dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic.update(dic1)#这两种写法不同,但是结果顺序也不同 print(dic) #{1: '才华', 2: '爱情', 3: '美貌', 4: '气质', 5: '梦想'} dic={1:"金钱",2:"爱情",3:"诚信",3:"美貌",4:"气质"} dic[1]="才华" print(dic) #字典的查 dic={1:"金钱",2:"爱情",3:"诚信",4:"美貌",5:"气质",6:"才华"} print(dic.keys()) print(dic.values()) print(dic.items()) #result #dict_keys([1, 2, 3, 4, 5, 6]) #dict_values(['金钱', '爱情', '诚信', '美貌', '气质', '才华']) #dict_items([(1, '金钱'), (2, '爱情'), (3, '诚信'), (4, '美貌'), (5, '气质'), (6, '才华')]) dic={1:"金钱",2:"爱情",3:"诚信",4:"美貌",5:"气质",6:"才华"} for i in dic: print(i) for i in dic.keys():#查找的都是K print(i) for i in dic.values():#查找的是value print(i) for k,v in dic.items():#查找的是key,和value print(k,v) ''' dic={1:"金钱",2:"爱情",3:"诚信",4:"美貌",5:"气质",6:"才华"} print(dic[2]) print(dic.get(8))#不会报错,但是输出None print(dic.get(8),"没有这个键")#None 没有这个键,若这个键没在字典中,可以自定义输出结果 print(dic[8])#若k没在字典中就会报错