版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Python中的一種數(shù)據(jù)結(jié)構(gòu)字典(Dictionary)的使用方法總結(jié)。一、dictionary數(shù)據(jù)類型的結(jié)構(gòu)是:key1:value1, key2:value2, .,即鍵值對。字典的健必須是不可更改的類型,如字符串、數(shù)字、元祖等;而值則可以是任意的數(shù)據(jù)類型,而且同一個字典當(dāng)中可以混用數(shù)據(jù)類型,如:?1d=a:1,b:1,2,3,c:(hello,world)字典的key不可以重復(fù)。需要注意的一點是:字典是一個無序存儲結(jié)構(gòu)。二、新建字典新建一個空字典,例:d=新建一個非空字典,例:d=a:hello, b:world使用工廠函數(shù)dict,傳入一個元素是列表的元祖作為參數(shù)來創(chuàng)建字典,例:?12
2、d=dict(a,hello,b,world)#返回a: hello, b: world還有一種使用dict函數(shù)創(chuàng)建字典的方法,例:d=dict(x=1, y=2),返回d為x:1, y:2使用字典對象本身的fromkeys(s,v)方法來創(chuàng)建一個字典,字典的健來自參數(shù)s,所有的值均為參數(shù)v的值,若參數(shù)v未給出則默認(rèn)均為None,例:?12d=.fromkeys(a,b),1)#返回a: 1, b: 1三、訪問字典1. 通過健來訪問值,例:dkey??梢酝ㄟ^key來引用value,但不可以通過value來引用key。讀取不存在的key會引發(fā)異常,對不存在的key做賦值操作則會為字典增加一對鍵值
3、。 2. 遍歷字典:for key in d.keys() 或者可以直接for key in d 來操作。 3. d.keys()返回一個包含所有鍵的list,需要注意該list并不按照字典定義的順序輸出。 4. d.values()返回一個包含所有值的list,值列表的元素順序與鍵列表的順序一致。 5. d.items()返回一個list,該list由形如(key, value)的tuple組成。 6. d.copy得到字典的一個淺拷貝。 7. d.get(key)若字典中有key則返回dkey,否則返回None。 8. d.get(key,default)同上,若無則返回default的值
4、。 9. d.has_key(key)判斷是否含有key,含有則返回True,否則False。 10. 判斷字典中是否存在某個鍵,還可以用in,not in操作符。 四、字典的增刪改1. 增加字典元素da=hello。 2. 刪除字典元素del da或者d.pop(a)。 3. 清空字典元素d.clear() 從一個字典中清除所有元素。 4. 刪除字典對象del d 5. 把字典a的元素加入到字典d當(dāng)中,鍵重復(fù)時會覆蓋字典d的鍵值d.update(a)。 6. 依順序得到字典的一個鍵值對并刪除,若字典是空的則拋出異常d.popitem() 7. 刪除指定鍵的鍵值對,并返回該鍵對應(yīng)的值,若鍵不存
5、在則返回參數(shù)vd.pop(key,v) 增加字典元素 nameinfo= nameinfoa1=yangrong #若字典里有a1主鍵,則覆蓋原來的值,沒有,則添加 nameinfoa1: yangrong遍歷字典主鍵與鍵值 for k, value innameinfo.items():. print k,value.a1 yangrong查看字典所有主鍵 dict = ob1:computer,ob2:mouse, ob3:printer dict.keys()ob2, ob3, ob1判斷字典中是否有該主鍵 dict.keys()ob2, ob3, ob1 dict.has_key(ob
6、2) #或ob2 in dictTrue dict.has_key(ob4)False也有人用循環(huán)方法來判斷for key in dict.keys():但是這種方法畢竟不夠簡潔,查看字典所有鍵值內(nèi)容 dict = ob1:computer,ob2:mouse, ob3:printer dict.values()mouse, printer, computer列出所有項目 dict.items()(ob2, mouse), (ob3, printer),(ob1, computer)清空字典 dict.clear() dict拷貝字典 dictob2: mouse, ob3: printer,
7、 ob1:computer a=dict aob2: mouse, ob3: printer, ob1:computer b=dict.copy() bob2: mouse, ob3: printer, ob1: computer比較字典 cmp(a,b)首先比較主鍵長度,然后比較鍵大小,然后比較鍵值大小,(第一個大返回1,小返回-1,一樣返回0)更新字典dict=yangrong:age:23,job:IT,xiaohei:age:22,job:dota dictxiaohei:set(age:22,job:dota), yangrong: age: 23, job:IT dictxiaoh
8、ei=111 #修改一級字典 dictxiaohei: 111, yangrong: age: 23,job: IT dictyangrongage=25 #修改二級字典 dictxiaohei: 111, yangrong: age: 25,job: IT dict=yangrong:23,IT,xiaohei:22,dotadictxiaohei1=dota2 #修改字典中列表某項,1是代表列表中第2個字符串。 dictxiaohei: 22, dota2, yangrong:23, IT 刪除字典元素 dictxiaohei: 22, dota2, yangrong:23, IT del
9、 dictxiaohei #刪除xiaohei鍵值 dictyangrong: 23, IT dictyangrong: 23, IT del dictyangrong1 #刪除yangrong主鍵的每2字值 dictyangrong: 23刪除整個字典 dictyangrong: 23 dict.clear() #同del dict dict將字符串切分為列表 s=hello world bye s.split() #用于把有規(guī)律的文本,讀取出來后,使用列表進行修改,再寫入文件。hello, world, bye將列表轉(zhuǎn)換為字符串S.split(str, ) #將string轉(zhuǎn)list,以空
10、格切分存儲字典(pickle序列化)#需導(dǎo)入pickle模塊 import pickle把字典內(nèi)容存入文件f=file(data.txt,wb) #新建文件data.txt,wb,b是打開塊文件,對于設(shè)備文件有用pickle.dump(a,f) #把a序列化存入文件f.close()把內(nèi)容讀入字典(反序列化)a=open(data.txt,rb) #打開文件print pickle.load(a) #把內(nèi)容全部反序列化增加字典元素 nameinfo= nameinfoa1=yangrong #若字典里有a1主鍵,則覆蓋原來的值,沒有,則添加 nameinfoa1: yangrong遍歷字典主鍵
11、與鍵值 for k, value innameinfo.items():. print k,value.a1 yangrong查看字典所有主鍵 dict = ob1:computer,ob2:mouse, ob3:printer dict.keys()ob2, ob3, ob1判斷字典中是否有該主鍵 dict.keys()ob2, ob3, ob1 dict.has_key(ob2) #或ob2 in dictTrue dict.has_key(ob4)False也有人用循環(huán)方法來判斷for key in dict.keys():但是這種方法畢竟不夠簡潔,查看字典所有鍵值內(nèi)容 dict = o
12、b1:computer,ob2:mouse, ob3:printer dict.values()mouse, printer, computer列出所有項目 dict.items()(ob2, mouse), (ob3, printer),(ob1, computer)清空字典 dict.clear() dict拷貝字典 dictob2: mouse, ob3: printer, ob1:computer a=dict aob2: mouse, ob3: printer, ob1:computer b=dict.copy() bob2: mouse, ob3: printer, ob1: co
13、mputer比較字典 cmp(a,b)首先比較主鍵長度,然后比較鍵大小,然后比較鍵值大小,(第一個大返回1,小返回-1,一樣返回0)更新字典dict=yangrong:age:23,job:IT,xiaohei:age:22,job:dota dictxiaohei:set(age:22,job:dota), yangrong: age: 23, job:IT dictxiaohei=111 #修改一級字典 dictxiaohei: 111, yangrong: age: 23,job: IT dictyangrongage=25 #修改二級字典 dictxiaohei: 111, yangr
14、ong: age: 25,job: IT dict=yangrong:23,IT,xiaohei:22,dotadictxiaohei1=dota2 #修改字典中列表某項,1是代表列表中第2個字符串。 dictxiaohei: 22, dota2, yangrong:23, IT 刪除字典元素 dictxiaohei: 22, dota2, yangrong:23, IT del dictxiaohei #刪除xiaohei鍵值 dictyangrong: 23, IT dictyangrong: 23, IT del dictyangrong1 #刪除yangrong主鍵的每2字值 dictyangrong: 23刪除整個字典 dictyangrong: 23 dict.clear() #同del dict dict將字符串切分為列表 s=hello world bye s.split() #用于把有規(guī)律的文本,讀取出來后,使用列表進行修改,再寫入文件。hello, world, bye將列表轉(zhuǎn)換為字符串S.split(str,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)金融合規(guī)培訓(xùn)課件
- 健身行業(yè)安全與健康指導(dǎo)手冊(標(biāo)準(zhǔn)版)
- 2026年劇本殺運營公司員工入職培訓(xùn)管理制度
- 智能圖像識別在2025年跨境數(shù)字內(nèi)容審核平臺的應(yīng)用可行性研究
- 產(chǎn)后健康評估與隨訪管理
- 2025年太陽能光伏板回收十年技術(shù)報告
- 交通輔警面試題目及答案
- 2026年柔性顯示材料創(chuàng)新應(yīng)用報告
- 河池輔警面試題目及答案
- 催收公司的作業(yè)制度
- 2024-2025學(xué)年江蘇省南京市玄武區(qū)八年級上學(xué)期期末語文試題及答案
- 專升本語文教學(xué)課件
- 別人買房子給我合同范本
- 電力通信培訓(xùn)課件
- 中建三局2024年項目經(jīng)理思維導(dǎo)圖
- 基層黨建知識測試題及答案
- DG-TJ08-2021-2025 干混砌筑砂漿抗壓強度現(xiàn)場檢測技術(shù)標(biāo)準(zhǔn)
- 鼻竇炎的護理講課課件
- 腸系膜脂膜炎CT診斷
- 體外膜肺氧合技術(shù)ECMO培訓(xùn)課件
- 老年醫(yī)院重點??平ㄔO(shè)方案
評論
0/150
提交評論