日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字典方法

發(fā)布時(shí)間:2024/4/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字典方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#像其他內(nèi)建類型一樣,字典也有方法,這些方法非常有用,不過可能不像使用列表或字符串一樣頻繁使用。 1、clear()方法 1 #clear()方法用于刪除字典內(nèi)的所有項(xiàng)。 2 #clear()方法的語法如下: 3 >>>dict.clear() 4 #此語法中dict代表指定字典,該方法不需要參數(shù)。該函數(shù)是一個(gè)原地操作(類似于list.sort)函數(shù),沒有任何返回值(返回值為None)。 5 #示例如下: 6 >>> student={'袁威':'666','肖濤':'222','陳安':'111','小明':'333'} 7 >>> print('字典中元素的個(gè)數(shù)為:%d個(gè)'%len(student)) 8 字典中元素的個(gè)數(shù)為:4個(gè) 9 >>> student.clear() 10 >>> print('字典中元素的個(gè)數(shù)為:%d個(gè):'%len(student)) 11 字典中元素的個(gè)數(shù)為:0個(gè): 12 #由輸出結(jié)果可知,字典調(diào)用clear方法后整個(gè)字典內(nèi)所有項(xiàng)都被刪除。 13 #再看下面兩個(gè)示例: 14 示例1: 15 >>> x={} 16 >>> y=x 17 >>> x['key']='value' 18 >>> y 19 {'key': 'value'} 20 >>> x={} 21 >>> y 22 {'key': 'value'} 23 示例2: 24 >>> x={} 25 >>> y=x 26 >>> x['key']='value' 27 >>> y 28 {'key': 'value'} 29 >>> x.clear() 30 >>> y 31 {} 32 #由兩個(gè)示例中,x和y最初對(duì)應(yīng)同一個(gè)字典。示例1中,通過將x關(guān)聯(lián)到一個(gè)新的空字典對(duì)他重新賦值,這對(duì)y沒有任何影響,還關(guān)聯(lián)到原先的字典。若想清空原始字典中所有元素,則必須使用clear方法,使用clear后,y的值也被清空了。 2、copy()方法 1 #copy()方法返回一個(gè)具有相同鍵/值對(duì)的新字典。這個(gè)方法是淺復(fù)制(shallow copy),因?yàn)橹当旧硎窍嗤?#xff0c;而不是副本。 2 #copy()方法的語法如下: 3 >>>dict.copy() 4 #此語法中dict字典代表指定字典,該方法不需要參數(shù)。返回結(jié)果為一個(gè)字典的淺復(fù)制。 5 #該方法示例如下: 6 >>> student={'袁威':'123','肖濤':'456','陳安':'789','小智':'666'} 7 >>> st=student.copy() 8 >>> print('復(fù)制后得到的st為:',st) 9 復(fù)制后得到的st為: {'袁威': '123', '肖濤': '456', '陳安': '789', '小智': '666'} 10 #由輸出結(jié)果看到,使用copy方法可以將字典復(fù)制給另一個(gè)變量。 11 #我們可以通過下面的示例看看什么是淺復(fù)制。 12 >>> student={'小智':'1002','info':['小張','1006','man']} 13 >>> st=student.copy() 14 >>> st['小智']='1005' 15 >>> print('更改copy后的st為:',st) 16 更改copy后的st為: {'小智': '1005', 'info': ['小張', '1006', 'man']} 17 >>> print('原字符串為:',student) 18 原字符串為: {'小智': '1002', 'info': ['小張', '1006', 'man']} 19 >>> st['info'].remove('man') 20 >>> print('刪除后的st為:',st) 21 刪除后的st為: {'小智': '1005', 'info': ['小張', '1006']} 22 >>> print('刪除后的student為:',student) 23 刪除后的student為: {'小智': '1002', 'info': ['小張', '1006']} 24 #由輸出結(jié)果看到,替換副本的值時(shí)原始字典不受影響。如果修改了某個(gè)值(原地修改,不是替換),原始字段就會(huì)改變,因?yàn)橥瑯拥闹狄苍谠值渲小R赃@種方式進(jìn)行復(fù)制就是淺復(fù)制,而使用深復(fù)制(deep copy)可以避免這個(gè)問題。 3、fromkeys()方法 1 #fromkeys()方法用于創(chuàng)建一個(gè)新字典,以序列seq中的元素做字典的鍵,value為字典所有鍵對(duì)應(yīng)的初始值。 2 #fromkeys()方法語法如下: 3 >>>dict.fromkeys(seq[,value]) 4 #此語法中dict代表指定字典;seq代表字典鍵值列表;value代表可選參數(shù),設(shè)置鍵序列(seq)的值。該方法返回結(jié)果為列表。 5 #示例如下: 6 >>> target=('姓名','性別','愛好') 7 >>> info=dict.fromkeys(target) 8 >>> print('info字典信息為:',info) 9 info字典信息為: {'姓名': None, '性別': None, '愛好': None} 10 >>> info=dict.fromkeys(target,10) 11 >>> print('新的info字典信息為:',info) 12 新的info字典信息為: {'姓名': 10, '性別': 10, '愛好': 10} 13 #由輸出結(jié)果看到,fromkeys方法使用給定的鍵建立新字典,每個(gè)鍵默認(rèn)對(duì)應(yīng)的值為None。 4、get()方法 1 #get()方法返回指定鍵的值,如果值不在字典中,就會(huì)返回默認(rèn)值。 2 #get()方法語法如下: 3 >>>dict.get(key,default=None) 4 #此語法中dict代表指定字典,key代表字典中要查找的鍵,default代表指定鍵的值不存在時(shí)就返回默認(rèn)值。該方法返回結(jié)果為指定鍵的值,如果值不在字典中,就返回默認(rèn)值None。 5 #示例如下: 6 >>> student={'袁威':'123','鄔玲苑':'456'} 7 >>> print('袁威的學(xué)號(hào)為:%s'%student.get('袁威')) 8 袁威的學(xué)號(hào)為:123 9 #由輸出結(jié)果看到,get方法使用比較簡單,再如示例: 10 >>> st={} 11 >>> print(st['name']) 12 Traceback (most recent call last): 13 File "<pyshell#8>", line 1, in <module> 14 print(st['name']) 15 KeyError: 'name' 16 >>> print(st.get('name')) 17 None 18 >>> print('name的值為:%s'%st.get('name')) 19 name的值為:None 20 #由輸出結(jié)果看到,其他方法試圖訪問字典中不存在的項(xiàng)時(shí)會(huì)出錯(cuò),而使用get方法就不會(huì)。使用get方法訪問一個(gè)不存在的鍵時(shí),返回None。這里還可以自定義默認(rèn)值,用于替換None,示例: 21 >>> st={} 22 >>> print('name的值為:%s'%st.get('name',袁威)) 23 Traceback (most recent call last): 24 File "<pyshell#12>", line 1, in <module> 25 print('name的值為:%s'%st.get('name',袁威)) 26 NameError: name '袁威' is not defined 27 >>> print('name的值為:%s'%st.get('name','袁威')) 28 name的值為:袁威 29 #由輸出結(jié)果看到,輸出結(jié)果中用‘袁威’替代了None。 5、key in dict方法 1 #Python字典in操作符用于判斷鍵是否存在于字典中,如果鍵在字典dict中就返回True,否則就返回False。 2 #該方法語法如下: 3 >>>key in dict 4 #此語法中dict代表指定字典,key代表要在字典中查找的鍵。如果鍵在字典里就返回True,否則就返回False。示例如下: 5 >>> student={'袁威':'123','鄔玲苑':'456'} 6 >>> print('袁威在字典里:','袁威'in student) 7 袁威在字典里: True 8 >>> print('黃金萍在字典里:','黃金萍'in student) 9 黃金萍在字典里: False 10 #由輸出結(jié)果看到,已返回對(duì)應(yīng)的True和False。 11 #該方法是Python3中的方法,在Python2中有一個(gè)相同功能的方法--has_key方法。 6、items()方法 1 #items()方法以列表返回可遍歷的(鍵,值)元組數(shù)值。 2 #items()方法語法如下: 3 >>>dict.items() 4 #此語法中dict代表指定字典,該方法不需要參數(shù),返回結(jié)果為可遍歷的(鍵/值)元組數(shù)值。示例如下: 5 >>> 鏗鏘工作室={'袁威':'789','鄔玲苑':'456'} 6 >>> print('調(diào)用items方法的結(jié)果為:%s'%鏗鏘工作室.items()) 7 調(diào)用items方法的結(jié)果為:dict_items([('袁威', '789'), ('鄔玲苑', '456')]) 8 >>> print('調(diào)用items方法的結(jié)果為:',鏗鏘工作室.items()) 9 調(diào)用items方法的結(jié)果為: dict_items([('袁威', '789'), ('鄔玲苑', '456')]) 10 #由輸出結(jié)果看到,返回結(jié)果為一個(gè)元組數(shù)值。 11 #在Python2中提供了一個(gè)iteritems方法,該方法和items方法的作用大致相同,但是iteritems方法返回的是一個(gè)迭代器對(duì)象,而不是列表。 7、keys()方法 1 #keys()方法以列表返回一個(gè)字典所有鍵。 2 #keys()方法語法如下: 3 >>>dict.keys() 4 #此語法中dict代表指定字典,該方法不需要參數(shù)。返回結(jié)果為一個(gè)字典所有鍵。示例如下: 5 >>> 鏗鏘工作室={'肖濤':'123','袁威':'456','鄔玲苑':'789'} 6 >>> print('字典鏗鏘工作室所有鍵為:%s'%鏗鏘工作室.keys()) 7 字典鏗鏘工作室所有鍵為:dict_keys(['肖濤', '袁威', '鄔玲苑']) 8 #由輸出結(jié)果看到,返回的是一個(gè)元組數(shù)值,數(shù)組包含了字典所有鍵。 8、setdefault()方法 1 #setdefalut()方法和get()方法類似,用于獲得與給定鍵相關(guān)聯(lián)的值。如果鍵不存在于字典中,就會(huì)添加鍵并將值設(shè)為默認(rèn)值。 2 #setdefault()方法語法如下: 3 >>>dict.setdefault(key,default=None) 4 #此語法中dict代表指定字典,key代表查找的鍵值,default代表鍵不存在時(shí)設(shè)置的默認(rèn)鍵值,該方法沒有任何返回值。示例如下: 5 >>> 鏗鏘工作室={'肖濤':'123','袁威':'456','鄔玲苑':'789'} 6 >>> print('字典鏗鏘工作室所有鍵為:%s'%鏗鏘工作室.keys()) 7 字典鏗鏘工作室所有鍵為:dict_keys(['肖濤', '袁威', '鄔玲苑']) 8 >>> 鏗鏘工作室={'袁威':'123','鄔玲苑':'456'} 9 >>> print('肖濤的鍵值為:%s'%鏗鏘工作室.setdefault('肖濤')) 10 肖濤的鍵值為:None 11 >>> print('鄔玲苑的鍵值為:%s'%鏗鏘工作室.setdefault('鄔玲苑')) 12 鄔玲苑的鍵值為:456 13 >>> print('鏗鏘工作室的新值為:%s'%鏗鏘工作室) 14 鏗鏘工作室的新值為:{'袁威': '123', '鄔玲苑': '456', '肖濤': None} 15 #由輸出結(jié)果看到,當(dāng)鍵不存在時(shí),setdefault方法返回默認(rèn)值并更新字典;如果存在,就返回與其對(duì)應(yīng)的值,不改變字典。和get一樣,默認(rèn)值可以選擇,如果不設(shè)定就使用None,如果設(shè)定就使用設(shè)定的值,例如: 16 >>> 鏗鏘工作室={'袁威':'123','鄔玲苑':'456'} 17 >>> print('小強(qiáng)的鍵值為:%s'%鏗鏘工作室.setdefault('小強(qiáng)')) 18 小強(qiáng)的鍵值為:None 19 >>> print('小張的鍵值為:%s'%鏗鏘工作室.setdefault('小張','1006')) 20 小張的鍵值為:1006 21 >>> print('鏗鏘工作室字典新值為:%s'%鏗鏘工作室) 22 鏗鏘工作室字典新值為:{'袁威': '123', '鄔玲苑': '456', '小強(qiáng)': None, '小張': '1006'} 23 #由輸出結(jié)果看到,小強(qiáng)沒有設(shè)置值,使用的是默認(rèn)值,輸出鍵值為None;小張?jiān)O(shè)置的默認(rèn)值是1006,輸出鍵值為1006. 9、update()方法 1 #update()方法用于把字典dict2的鍵/值對(duì)更新到dict里 2 #update()方法語法如下 3 >>>dict.update(dict2) 4 #此語法中dict代表指定字典,dict2代表添加到指定字典dict里的字典,該方法沒有任何返回值。 5 #示例如下: 6 >>> student1={'小明':'123','小智':'456'} 7 >>> student2={'小強(qiáng)':'789'} 8 >>> print('原字典為:',student) 9 原字典為: {'袁威': '123', '鄔玲苑': '456'} 10 >>> student.update(student2) 11 >>> print('新字典為:%s'%student) 12 新字典為:{'袁威': '123', '鄔玲苑': '456', '小強(qiáng)': '789'} 13 >>> student3={'小強(qiáng)':'1005'} 14 >>> student.update(student3) #相同項(xiàng)覆蓋 15 >>> print('新字典為:%s'%student) 16 新字典為:{'袁威': '123', '鄔玲苑': '456', '小強(qiáng)': '1005'} 17 #由輸出結(jié)果看到,提供的字典中的項(xiàng)被添加帶舊字典中,如果有相同的鍵就會(huì)被覆蓋。 10、values()方法 1 #values()方法以列表形式返回字典中所有值。與返回鍵的列表不同,返回的列表中可以包含重復(fù)的元素。 2 #values()方法語法如下: 3 >>>dict.values() 4 #此語法中dict代表指定字典,該方法不需要參數(shù),返回結(jié)果為字典中的所有值。示例如下: 5 >>> 鏗鏘工作室={'小明':'1001','小智':'1002','小強(qiáng)':'1001'} 6 >>> print('鏗鏘工作室所有值為:%s'%list(student.values())) 7 鏗鏘工作室所有值為:['1001', '1002', '1003'] 8 >>> print('鏗鏘工作室所有值為:%s'%student.values()) 9 鏗鏘工作室所有值為:dict_values(['1001', '1002', '1003']) 10 #由輸出結(jié)果看到,返回列表中包含重復(fù)的元素

end

轉(zhuǎn)載于:https://www.cnblogs.com/DLHe/p/7737523.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的字典方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。