字典 dictionary

###### 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没在字典中就会报错

  

原文地址:https://www.cnblogs.com/GZ1215-228513-Chichy/p/11319746.html