2.2.2.6Python-字典

總目錄:http://www.reibang.com/p/e406a9bc93a9

Python - 子目錄:http://www.reibang.com/p/50b432cb9460

字典

字典是另一種可變?nèi)萜髂P推碜梗铱纱鎯θ我忸愋蛯ο竽洹W值涞拿總€鍵值?key=>value?對用冒號?:?分割,每個鍵值對之間用逗號?,?分割窜管,整個字典包括在花括號?{}?中 ,格式如下所示:

d= {key1:value1,key2:value2}


鍵一般是唯一的所禀,如果重復(fù)最后的一個鍵值對會替換前面的界斜,值不需要唯一。

dict1= {'a':1,'b':2,'b':'3'}

print(dict1['b'])

'3'

print(dict1)

{'a':1,'b':'3'}


值可以取任何數(shù)據(jù)類型眯搭,但鍵必須是不可變的窥翩,如字符串,數(shù)字或元組鳞仙。

一個簡單的字典實例:

dict1= {'Alice':'2341','Beth':'9102','Cecil':'3258'}

也可如此創(chuàng)建字典:

dict1= {'abc':456}

dict2= {'abc':123,98.6:37}

*字典兩大特點:無序寇蚊,鍵唯一


基礎(chǔ)操作


dit ={'name':'hx' }


dit['age']=20

print(dit)

{'name':'hx','age':20}



dict1 = {'name': 'hx', 'age': 18, 'class': 1,'cs':1}


del dict1['name']? ? ? ? ? ?#刪除字典中指定鍵值對

print(dict1)

{'age': 18, 'class': 1}


print(dict1.pop('age'))? ? ? ? ? ?#刪除字典中指定鍵值對,并返回該鍵值對的值

18


ret=dict1.pop('age')? ? ? ? ?#這種寫法等同于print(dic4.pop('age'))

print(ret)

18


print(dict1)? ? ? ? ? #已刪除name和age

{'class': 1,'cs':1}


a = dict1.popitem()? ? ? ? ?#隨機刪除某組鍵值對棍好,并以元組方式返回值

print(a, dict1)

('class', 1) {'cs':1}


dict1.clear()? ? ? ? ? # 清空字典

print(dict1)

{}


del dict1? ? ? ? ? ?#刪除整個字典

print(dict1)

報錯


dict1={'name':'hx','age':16}

dict1['age']=18

print(dict1)

{'name':'hx','age':18}


查?

dict1={'age': 18, 'name': 'hx', 'hobby': 'girl'}


print(dict1)

{'age': 18, 'name': 'hx', 'hobby': 'girl'}


print(dict1['name'])

hx


print(dict1.keys())? ? ? ? ? ? ?#這里來區(qū)分為什么調(diào)用這些方法要把結(jié)果轉(zhuǎn)換為列表

dict_keys(['age', 'name', 'hobby'])


print(list(dict1.values()))

[18, 'hx', 'girl']


print(list(dict1.items()))? ? ? ? ? #將k-y對以元組的形式輸出

[('age', 18), ('name', 'hx'), ('hobby', 'girl')]


內(nèi)置函數(shù)


get?

函數(shù)返回指定鍵的值仗岸,如果值不在字典中返回默認(rèn)值。

dict1={'name':'hx','age':20}


#鍵存在借笙,不改動扒怖,返回字典中相應(yīng)的鍵對應(yīng)的值

re=dict1.get('age',30)

print(re)

20


#鍵不存在,返回默認(rèn)值

re1=dict1.get('class',none)

print(re1)

none


setdefault??

和get()類似, 如果鍵不存在于字典中业稼,將會添加鍵并將值設(shè)為默認(rèn)值盗痒。

dict1={'name':'hx','age':20}


#鍵存在,不改動低散,返回字典中相應(yīng)的鍵對應(yīng)的值

ret=dict1.setdefault('age',34)

print(ret)

20


#鍵不存在俯邓,在字典中中增加新的鍵值對骡楼,并返回相應(yīng)的值

ret1=dict1.setdefault('hobby','girl')

print(dict)

{'name': 'hx', 'age': 20, 'hobby': 'girl'}

print(ret1)

girl


len? ??

計算字典元素個數(shù),即鍵的總數(shù)稽鞭。

dic6={'name':'hx','age':20}

print(len(dic6))

2


copy?

返回一個字典的淺復(fù)制

dict1= {'user':'runoob','num':[1,2,3]}?


# 引用對象

dict2=dict1

#淺拷貝:深拷貝父對象(一級目錄)君编,子對象(二級目錄)不拷貝,還是引用

dict3=dict.copy()? ? ? ? ?


# 修改 data 數(shù)據(jù)?

dict1['user']='root'

dict1['num'].remove(1)


# 輸出結(jié)果?

print(dict1)?

{'user':'root','num':[2,3]}

print(dict2)?

{'user':'root','num':[2,3]}


#深拷貝一級目錄川慌,修改源字典一級目錄不變吃嘿。

#二級目錄不拷貝,直接引用修改過的元素梦重。 (深淺拷貝說明直達)

print(dict3)?

{'user':'runoob','num':[2,3]}


fromkeys??

用于創(chuàng)建一個新字典兑燥,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應(yīng)的初始值琴拧。

seq=('name','age','sex')?


dict1=dict.fromkeys(seq)

print("新的字典為 : %s"%str(dict1)) #不指定值

新的字典為:{'age':None,'name':None,'sex':None}


dict1=dict.fromkeys(seq,10)

print("新的字典為 : %s"%str(dict1)) #指定值

新的字典為:{'age':10,'name':10,'sex':10}


key in dict??

如果鍵在字典dict里返回true降瞳,否則返回false

dict1= {'Name':'hx','Age':7}


# 檢測鍵 Age 是否存在?

if 'Age' in dict1:?

? ? print("鍵 Age 存在")?

else:?

????print("鍵 Age 不存在")

鍵 Age 存在


# 檢測鍵 Sex 是否存在?

if 'Sex' in dict1:

????print("鍵 Sex 存在")

else:?

????print("鍵 Sex 不存在")

鍵 Sex 不存在


key not in dict??

如果鍵不在字典dict里返回true,否則返回false

dict1= {'Name':'hx','Age':7}


# 檢測鍵 Age 是否存在

if 'Age' not in dict1:

????print("鍵 Age 不存在")

else:

????print("鍵 Age 存在")

鍵 Age 存在


update?

把字典dict2的鍵/值對更新到dict里

dict1= {'Name':'hx','Age':7}?

dict2= {'Sex':'female'}?


dict1.update(dict2)

print("更新字典 dict :",dict1)

更新字典dict:{'Name':'hx','Age':7,'Sex':'female'}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚓胸,一起剝皮案震驚了整個濱河市挣饥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沛膳,老刑警劉巖扔枫,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锹安,居然都是意外死亡短荐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門叹哭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忍宋,“玉大人,你說我怎么就攤上這事风罩】放牛” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵超升,是天一觀的道長入宦。 經(jīng)常有香客問我,道長廓俭,這世上最難降的妖魔是什么云石? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮研乒,結(jié)果婚禮上汹忠,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好宽菜,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布谣膳。 她就那樣靜靜地躺著,像睡著了一般铅乡。 火紅的嫁衣襯著肌膚如雪继谚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天阵幸,我揣著相機與錄音花履,去河邊找鬼。 笑死挚赊,一個胖子當(dāng)著我的面吹牛诡壁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荠割,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妹卿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔑鹦?” 一聲冷哼從身側(cè)響起夺克,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嚎朽,沒想到半個月后铺纽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡火鼻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年室囊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魁索。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖盼铁,靈堂內(nèi)的尸體忽然破棺而出粗蔚,到底是詐尸還是另有隱情,我是刑警寧澤饶火,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布鹏控,位于F島的核電站,受9級特大地震影響肤寝,放射性物質(zhì)發(fā)生泄漏当辐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一鲤看、第九天 我趴在偏房一處隱蔽的房頂上張望缘揪。 院中可真熱鬧,春花似錦、人聲如沸找筝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袖裕。三九已至曹抬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間急鳄,已是汗流浹背谤民。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疾宏,地道東北人赖临。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像灾锯,于是被迫代替她去往敵國和親兢榨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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