20180706

一.字典dict:用大括号{}括起来,内部使用key:value的形式来保存数据

  {'jay':"周杰伦",'jj':"林俊杰"}

注意:字典的key必须是可哈希的,不可变的                     list是不可哈希的,是可变的

  value  没有限制        不是按照我们的顺序保存,无序的

二.字典的相关操作

1.字典的增加

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}                         #如果key重复了,会替换原来的value
  # dic["晓君"]="未知"                                ===> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic)

例如;

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
  # dic["晓君"]="未知"
  # dic["晓君"]="***"                                  ==> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"***"}
  # print(dic)

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}                                 #如果字典中已经包含了这个key,将不再保存
  # dic.setdefault("晓君","未知")
  # print(dic)                                          ==> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
  # dic.setdefault("晓君","未知")
  # dic.setdefault("晓君","***")                    ==>{"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic)

2.字典的删除

dic.pop()

例如

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}                      #删除一个元素,返回这个元素的value值
  # dic.pop("昆凌")
  # print(dic)                                               ==>{"刘怀源":"张舒文","刘亚楠":"尹少言"}

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
  # ret = dic.pop("昆凌")
  # print(ret)                                                       ==>周杰伦的媳妇

del dic[]

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
  # del dic["昆凌"]
  # print(dic)                                            ==>{"刘怀源":"张舒文","刘亚楠":"尹少言"}

⑶dic.popitem()

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # dic.popitem()
  # print(dic)                                 ==>随机删除

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # ret = dic.popitem()
  # print(ret)                                   ==>返回的是一个元组(删除的那一项)

⑷dic.clear() 

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
  # dic.clear()
  # print(dic)                                  ==>全部清除

3.字典的修改

⑴用key去修改                  (数字加减也可以)

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # dic["晓君"]=int("123")
  # print(dic)                                            ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"123"

例如:

  dic = ["id":1,"name":"李嘉诚","money":1000]

  dic["money"]=dic["money"]-500

  print(dic)                                           ==>"id":1,"name":"李嘉诚","money":500

⑵update(更新)

例如:

  # dic1 = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # dic2 = {"昆凌":"***媳妇","刘怀源":"张舒文","游丽":"真哥","A":"B","***":"张舒文"}
  # dic1.update(dic2)
  # print(dic1)                                     #把dic2中的内容更新到dic1中,如果存在了key,就替换,如果不存在,就添加
  # print(dic2)

4.字典的查询

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic["昆凌"])                            ==>周杰伦的媳妇                              #如果key不存在直接报错

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic.get("刘怀源"))                                  ==>张舒文
  # print(dic.get("刘怀源的"))                               ==>None                            #如果key不存在,返回None

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic.get("刘怀源的","余小"))                               ==>余小                     #如果key不存在,直接输出默认值

例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}                    #可以帮忙添加
  # dic.setdefault("昆凌的","老公")
  # print(dic)                                                  ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知","昆凌的","老公"

 例如:  

  dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  ret = dic.setdefault("昆凌的","老公")
  print(ret)                                                     ==>老公                          如果key不存在.就相当于添加,ret这个执行出来的是value
  print(dic)                                                    ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知","昆凌的","老公"

    重点:setdefault()     ①首先要判断原来的字典中有没有这个key,如果没有,执行新增

               ②用这个key去字典中查询,如果有,返回查到的结果

5.字典的其他相关操作

例如: 

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic.keys())                    打印出来dict_keys(['昆凌', '刘怀源', '刘亚楠', '晓君'])             拿到所有的key,返回key的集合,像是列表,但不是列表  
  # for key in dic.keys():                                         可以进行迭代循环
  # print(key)                                            
例如:
  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic.values())
  # for value in dic.values():
  # print(value)
例如:

  # dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
  # print(dic.items())                                     item(元素)
  # for item in dic.items():
  # print(item)
  # print(item[0])

例如:

 

  dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}               解包   (元组,列表都可以)
  for k,v in dic.items():
    print(k,v)

三.字典的嵌套

例如:

dic = {"name":"汪峰",
"age":"48",
"wife":{
"name":"国际章",
"age":"40",
"salary":"10000" salary (工资)
},
"children":[
{"name":"老大","age":20},
{"name":"老二","age":16}
]
}
print(dic["children"][0]["age"])

 

  print(dic.[children][0]['name'])                 ==>20                        如果字典里面有[列表],就写列表里所对应的索引

例如:          字典的for循环

dic = {1:"A",2:"B",3:"C",4:"D"}
for A in dic: ==>直接循环字典,拿到的是key
print(A)
print(dic(A)) ==>打印出来的是A所对应value

 

posted @ 2018-07-07 18:22  Sunny_l  阅读(95)  评论(0)    收藏  举报