Python字典的常用操作

先來安利一下:字典的鍵必須是可哈希的。(通俗理解就是不可變的兔综,比如饿凛,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ì)的新字典苞氮。

? ? ? ? 淺拷貝后面介紹

? ? ? ? 代碼得多敲湾揽,不能光看。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笼吟,一起剝皮案震驚了整個(gè)濱河市库物,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贷帮,老刑警劉巖戚揭,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異撵枢,居然都是意外死亡民晒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門锄禽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來潜必,“玉大人,你說我怎么就攤上這事沃但〈殴觯” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宵晚,是天一觀的道長恨旱。 經(jīng)常有香客問我,道長坝疼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任谆沃,我火速辦了婚禮钝凶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己耕陷,他們只是感情好掂名,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哟沫,像睡著了一般饺蔑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗜诀,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天猾警,我揣著相機(jī)與錄音,去河邊找鬼隆敢。 笑死发皿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拂蝎。 我是一名探鬼主播穴墅,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼温自!你這毒婦竟也來了玄货?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤悼泌,失蹤者是張志新(化名)和其女友劉穎松捉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體券躁,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惩坑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了也拜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片以舒。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慢哈,靈堂內(nèi)的尸體忽然破棺而出蔓钟,到底是詐尸還是另有隱情,我是刑警寧澤卵贱,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布滥沫,位于F島的核電站,受9級(jí)特大地震影響键俱,放射性物質(zhì)發(fā)生泄漏兰绣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一编振、第九天 我趴在偏房一處隱蔽的房頂上張望缀辩。 院中可真熱鬧,春花似錦、人聲如沸臀玄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽健无。三九已至荣恐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間累贤,已是汗流浹背叠穆。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畦浓,地道東北人痹束。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像讶请,于是被迫代替她去往敵國和親祷嘶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容