先來安利一下:字典的鍵必須是可哈希的。(通俗理解就是不可變的兔综,比如饿凛,int,str,tuple.因?yàn)檫@樣就可以將你這個(gè)鍵固定好,查的時(shí)候很快H沓邸)
1.字典的增加
1)賦值操作
D[key] = value
2)setdefault()
? ? def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
? ? ? ? """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
? ? ? ? pass
? ? ? ? 用法:如果只有一個(gè)參數(shù)笤喳,功能與get()方法一樣,用來查詢(見后面)碌宴。
如果有兩個(gè)參數(shù),第一個(gè)參數(shù)k為鍵蒙畴,第二個(gè)參數(shù)d為值贰镣。
如果有兩個(gè)參數(shù),第一個(gè)參數(shù)k不存在膳凝,那么會(huì)將這個(gè)鍵值對(duì)存入字典D中碑隆。
如果第一個(gè)參數(shù)k存在,那么原字典D中鍵為k的值不變蹬音。
注意:該方法有返回值上煤,一個(gè)參數(shù)與get()方法一樣。
兩個(gè)參數(shù)著淆,返回劫狠,進(jìn)行完setdefault()操作后再對(duì)字典進(jìn)行g(shù)et()操作拴疤。
例子:
dic = {'haixing':"還行"}
dic.setdefault('haixing','我愛你')#如果存在不會(huì)替換
print(dic) #->{'haixing': '還行'}
dic = {'haixing':"還行"}
dic.setdefault('hello','我愛你')#如果不存在加入字典
print(dic) #->{'haixing': '還行', 'hello': '我愛你'}
2.字典的刪除
1)pop()
? ? def pop(self, k, d=None): # real signature unknown; restored from __doc__
? ? ? ? """
? ? ? ? D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
? ? ? ? If key is not found, d is returned if given, otherwise KeyError is raised
? ? ? ? """
? ? ? ? pass
? ? ? ? 用法:如果只有一個(gè)參數(shù)k,那么將會(huì)刪除鍵k對(duì)應(yīng)的鍵值對(duì)独泞,如果沒有鍵k那么將會(huì)報(bào)錯(cuò)呐矾。
如果有兩個(gè)操作,那么將會(huì)刪除鍵k對(duì)應(yīng)的鍵值對(duì)懦砂,如果沒有鍵k那么將會(huì)輸出默認(rèn)值d蜒犯。
? ? ? ? 注意:有返回值。返回k鍵k對(duì)應(yīng)的值value荞膘。
? ? ? ? 例子:
dic = {'woaini': '我愛你', 'zhongguo': '中國', 'qinaide': '親愛的'}
res = dic.pop('woaini')? #返回value值
print(res)#->我愛你
print(dic) #->{'zhongguo': '中國', 'qinaide': '親愛的'}
dic = {'woaini': '我愛你', 'zhongguo': '中國', 'qinaide': '親愛的'}
res = dic.pop('wi','啊啊啊')? #返回默認(rèn)值值
print(res)#->啊啊啊
print(dic) #->{'woaini': '我愛你', 'zhongguo': '中國', 'qinaide': '親愛的'}
? ? 2)del
delD[key]? 刪除key對(duì)應(yīng)的鍵值對(duì)
? ? 3)popitem()
def popitem(self): # real signature unknown; restored from __doc__
? ? ? ? """
? ? ? ? D.popitem() -> (k, v), remove and return some (key, value) pair as a
? ? ? ? 2-tuple; but raise KeyError if D is empty.
? ? ? ? """
? ? ? ? pass
? ? ? ? 用法:隨機(jī)刪除一組鍵值對(duì)罚随。并以元組的形式返回所刪鍵值對(duì)。如果字典D為空則報(bào)錯(cuò)羽资。
? ? ? ? 例子:
dic = {'woaini': '我愛你', 'zhongguo': '中國', 'qinaide': '親愛的'}
res = dic.popitem()# 隨機(jī)刪除一個(gè)淘菩,返回鍵值組成的一個(gè)元組
print(res) #->('qinaide', '親愛的')
print(dic) #->{'woaini': '我愛你', 'zhongguo': '中國'}
?? ? 4)clear()
D.clear()? 直接清空字典,返回{}
3.字典的修改
1)賦值操作
D[key] = value [通過鍵key來修改]
例子:
dic = {'qian': 1000000, 'zhongguo': '中國', 'qinaide': '親愛的'}
dic['qian'] = '我喜歡'
print(dic) #->{'qian': '我喜歡', 'zhongguo': '中國', 'qinaide': '親愛的'}
2)update()
? ? def update(self, E=None, **F): # known special case of dict.update
? ? ? ? """
? ? ? ? D.update([E, ]**F) -> None.? Update D from dict/iterable E and F.
? ? ? ? If E is present and has a .keys() method, then does:? for k in E: D[k] = E[k]
? ? ? ? If E is present and lacks a .keys() method, then does:? for k, v in E: D[k] = v
? ? ? ? In either case, this is followed by: for k in F:? D[k] = F[k]
? ? ? ? """
? ? ? ? pass
? ? ? ? 用法:D.update(E),將字典E中的鍵值對(duì)并到D中削罩,如果存在鍵key相等瞄勾,將會(huì)被覆蓋。
? ? ? ? 例子:
dic1 = {'1':11111,"2":222222,'3':? 33333}
dic2 = {'4': 44444,'2': '二二二二'}
dic1.update(dic2)? #將dic2里面的內(nèi)容追加到dic1中弥激,如果dic1中存在dic2的內(nèi)容則被dic2覆蓋
print(dic1) #->{'1': 11111, '2': '二二二二', '3': 33333, '4': 44444}
print(dic2) #->{'4': 44444, '2': '二二二二'}
4.字典的查詢
1)那key當(dāng)索引
D[key] ->返回鍵key對(duì)應(yīng)的值value
例子:
dic = {'及時(shí)雨': '宋江', '易大師': '劍圣', '大寶劍': '蓋倫'}
print(dic['易大師'])#->劍圣
print(dic['提莫'])? #會(huì)報(bào)錯(cuò)
2)get()
? ? def get(self, k, d=None): # real signature unknown; restored from __doc__
? ? ? ? """ D.get(k[,d]) -> D[k] if k in D, else d.? d defaults to None. """
? ? ? ? pass
? ? ? ? 用法:如果只有一個(gè)參數(shù)k进陡,如果k存在,那么將會(huì)返回k對(duì)應(yīng)的值value微服。
如果k不存在趾疚,那么將會(huì)返回None。
如果有兩個(gè)參數(shù)以蕴,d為默認(rèn)值糙麦,如果k存在那么將會(huì)返回k對(duì)應(yīng)的值value。
如果不存在將會(huì)返回默認(rèn)值d丛肮。
? ? ? ? 例子:
dic = {'及時(shí)雨': '宋江', '易大師': '劍圣', '大寶劍': '蓋倫'}
print(dic.get('易大師')) #->劍圣? ? ? ? #存在返回value值? ?
print(dic.get('提莫'))? #——>None? ? ? #不存在返回None? ? ?
print(dic.get('提莫','迅捷')) #->迅捷? #不存在返回第二個(gè)參數(shù)的默認(rèn)值?
? ? 3)setfefaule()
def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
? ? ? ? """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
? ? ? ? pass
? ? ? ? 用法:如果只有一個(gè)參數(shù)赡磅,功能與get()方法一樣,用來查詢宝与。
如果有兩個(gè)參數(shù)焚廊,第一個(gè)參數(shù)k為鍵,第二個(gè)參數(shù)d為值习劫。
如果有兩個(gè)參數(shù)咆瘟,第一個(gè)參數(shù)k不存在,那么會(huì)將這個(gè)鍵值對(duì)存入字典D中诽里。
如果第一個(gè)參數(shù)k存在袒餐,那么原字典D中鍵為k的值不變。
例子:
dic = {'及時(shí)雨': '宋江', '易大師': '劍圣', '大寶劍': '蓋倫'}
print(dic.setdefault('易大師'))? #->劍圣? #一個(gè)參數(shù)和get返回值一樣
print(dic.setdefault('提莫'))? #->None? ? #一個(gè)參數(shù)和get返回值一樣
dic = {'及時(shí)雨': '宋江', '易大師': '劍圣', '大寶劍': '蓋倫'}
print(dic.setdefault('提莫','迅捷'))#->迅捷? #將他加入列表再執(zhí)行g(shù)et操作
print(dic.setdefault('易大師','迅捷'))#->劍圣? #將他加入列表再執(zhí)行g(shù)et操作
5.其他相關(guān)操作
1)keys()
? ? def keys(self): # real signature unknown; restored from __doc__
? ? ? ? """ D.keys() -> a set-like object providing a view on D's keys """
? ? ? ? pass
? ? ? ? 用法:將字典D中的所有鍵key以列表的形式取出,放入一個(gè)dict_keys()中灸眼,他可用來遍歷卧檐。
? ? ? ? 例子:
dic1 = {'1':11111,"2":222222,'3':? 33333}
print(dic1.keys()) #->dict_keys(['1', '2', '3'])
? ? ? ? ? ? foriindic1.keys():
? ? ? ? ? ? ? ? print(i)
? ? 2)values()
? ? ? ? def values(self): # real signature unknown; restored from __doc__
? ? ? ? """ D.values() -> an object providing a view on D's values """
? ? ? ? pass
? ? ? ? 用法:將字典D中的所有值value以列表的形式取出,放入一個(gè)dict_values()中幢炸,他可用來遍歷泄隔。
? ? ? ? 例子:
dic1 = {'1':11111,"2":222222,'3':? 33333}
print(dic1.values())#->dict_values([11111, 222222, 33333])
? ? ? ? ? ? foriindic1.values():
? ? ? ? ? ? ? ? print(i)
? ? 3)items()
? ? ? ? def items(self): # real signature unknown; restored from __doc__
? ? ? ? """ D.items() -> a set-like object providing a view on D's items """
? ? ? ? pass
? ? ? ? 用法:將字典D中的所有鍵值對(duì)以列表的形式取出,鍵值對(duì)以元組形式存宛徊,放入一個(gè)dict_items()中佛嬉,他可用來遍歷。
? ? ? ? 例子:
dic1 = {'1':11111,"2":222222,'3':? 33333}
print(dic1.items())#->dict_items([('1', 11111), ('2', 222222), ('3', 33333)])
? ? ? ? ? ? foriindic1.items():
? ? ? ? ? ? ? ? print(i)
? ? 4)fromkeys()
? ? ? ? deffromkeys(*args, **kwargs):# real signature unknown
? ? ? ? """ Returns a new dict with keys from iterable and values equal to value. """
? ? ? ? pass
? ? ? ? 用法:給一個(gè)可迭代對(duì)象的所有元素闸天,給他們相同的值value暖呕。用來初始化
? ? ? ? 例子:
dic = dict.fromkeys([1,2,3,4],'ss')
print(dic)? #->{1: 'ss', 2: 'ss', 3: 'ss', 4: 'ss'}
? ? 5)copy()
? ? ? ? def copy(self): # real signature unknown; restored from __doc__
? ? ? ? """ D.copy() -> a shallow copy of D """
? ? ? ? pass
? ? ? ? 對(duì)字典D進(jìn)行淺拷貝,返回一個(gè)和D相同鍵值對(duì)的新字典苞氮。
? ? ? ? 淺拷貝后面介紹
? ? ? ? 代碼得多敲湾揽,不能光看。