字典是python中五中基本數(shù)據(jù)類(lèi)型之一,雖然它的賦值稍微麻煩點(diǎn),但用起來(lái)真的是很方便。它用鍵值對(duì)來(lái)存放數(shù)據(jù),所謂鍵值對(duì),就是一個(gè)鍵,對(duì)應(yīng)一個(gè)值,如果后面對(duì)前面的鍵再次賦值,第一次的值就被覆蓋掉。
創(chuàng)新互聯(lián)專(zhuān)業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專(zhuān)業(yè)提供成都服務(wù)器托管,服務(wù)器租用,雙線服務(wù)器托管,雙線服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
1:字典的創(chuàng)建
我們知道,python中列表用‘[]’表示,元祖用‘()’表示,字典用的是'{}'表示,創(chuàng)建較列表、元祖、字符串來(lái)說(shuō)較為麻煩點(diǎn),但只要記住鍵值對(duì)這三個(gè)字,就能正確創(chuàng)建一個(gè)字典類(lèi)型的變量的,看下面代碼
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d) print(type(d)) print(d['a']) print(d['c'][1]) print(d['d'][1])
輸出結(jié)果如下:
{'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}
我是a
2
第一行我們創(chuàng)建了一個(gè)叫d的字典類(lèi)型,在創(chuàng)建時(shí),我們把每一個(gè)鍵名都用英文的引號(hào)印起來(lái),而鍵值可以是任意數(shù)據(jù)類(lèi)型,比如a這個(gè)鍵的鍵值是字符串,b這個(gè)鍵的兼職是數(shù)字,c這個(gè)鍵的鍵值是列表,d這個(gè)鍵的鍵值是元組
第三行,輸出整個(gè)字典,看,它長(zhǎng)得是不是和我們創(chuàng)建時(shí)一模一樣,
第四行,利用type函數(shù)檢查d這個(gè)變量的數(shù)據(jù)類(lèi)型,輸出時(shí)dict,沒(méi)錯(cuò),dict就表示字典了,像list表示列表一樣
第五行,值輸出了字典里面a這個(gè)鍵的鍵值
第六行,輸出c這個(gè)鍵值里面的第二個(gè)元素,c的鍵值是list類(lèi)型,所以我們可以像操作列表那樣操作d['c']
第七航,與第六行類(lèi)似,只不過(guò)鍵值類(lèi)型換成的元祖
2:修改字典
在創(chuàng)建字典時(shí),我們?yōu)槊恳粋€(gè)鍵都指明了鍵值,如果后面我們想要修改這個(gè)鍵的鍵值怎么辦呢?也很簡(jiǎn)單,只需要對(duì)這個(gè)鍵重新賦值就可以了,如下:
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d['a']) d['a'] = '我是被修改后的a' print(d['a'])
輸出結(jié)果如下:
我是a
我是被修改后的a
第四行我們輸出了最初a這個(gè)鍵的鍵值,第五行對(duì)a的鍵值進(jìn)行修改,第六行輸出被修改后的a的鍵值
3:字典的刪除
如果我們?cè)趧?chuàng)建完成一個(gè)字典后,想要?jiǎng)h除字典里面的某個(gè)鍵,或者是整個(gè)字典,這時(shí)我們可以用 del 方法。
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d['a']) del d['a'] print(d['a'])
輸出如下
我是a
Traceback (most recent call last):
File "E:/py project/雜例/dict_demo.py", line 8, in
print(d['a'])
KeyError: 'a'
上面第四行,我們先輸出的a的鍵值,人后利用 del 對(duì)a這個(gè)鍵進(jìn)行刪除,在第六行再次訪問(wèn)a這個(gè)鍵,就會(huì)報(bào)錯(cuò)KeyError: 'a'
如果我們想要一次性刪除整個(gè)字典怎么辦呢?也很簡(jiǎn)單,只要對(duì)第五行的代碼稍作修改,刪掉d后面的['a'],在 del 后面直接跟字典名就可以了。
還可以利用字典的 pop()方法進(jìn)行刪除 del 方法在刪除的時(shí)候不存在返回值,二pop會(huì)返回被刪除鍵的鍵值,如果這個(gè)鍵不存在,還可以返回指定的錯(cuò)誤信息,如下:
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d['a']) print(d.pop('a', '123456')) print(d.pop('e', '這個(gè)鍵不存在,無(wú)法刪除')) 輸入結(jié)果如下: 我是a 我是a 這個(gè)鍵不存在,無(wú)法刪除
第三行輸出a鍵的值
第四行刪除a鍵,并返回a鍵的值,因?yàn)檫@個(gè)鍵是存在于字典中的,所以不會(huì)返回后面的‘123456’
第五行刪除e鍵,而這個(gè)鍵不存在與字典中,所以返回后面的錯(cuò)誤信息‘這個(gè)鍵不存在,無(wú)法刪除’
4:字典的清空
有些時(shí)候,我們想要?jiǎng)h除的不是整個(gè)字典,而只是字典里面的內(nèi)容呢,這個(gè)時(shí)候,我們可以使用字典的clear方法,來(lái)對(duì)字典進(jìn)行一個(gè)清空,操作如下
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} d.clear() print(d) 輸出如下: {}
可以看出,此時(shí)d已經(jīng)成為了一個(gè)空字典
5:.get方法訪問(wèn)鍵
字典['鍵名']這種方法雖然訪問(wèn)字典里面的某個(gè)鍵很方便,但也存在一些不足,如果這個(gè)鍵不存在,程序就會(huì)終止,阻礙程序的正常運(yùn)行,如果想要返回正確的錯(cuò)誤信息,并讓程序繼續(xù)運(yùn)行下去,就可以用 .get 方法來(lái)訪問(wèn)字典里面的鍵,
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d.get('e', '這個(gè)鍵不存在')) print(d['e']) 輸入如下: 這個(gè)鍵不存在 Traceback (most recent call last): File "E:/py project/雜例/dict_demo.py", line 6, inprint(d['e']) KeyError: 'e'
第三第四行都訪問(wèn)了一個(gè)字典中不存在的鍵,而第三行用 .get 方法訪問(wèn),返回設(shè)置好的錯(cuò)誤信息,程序繼續(xù)向下運(yùn)行,第四行普通方法訪問(wèn),程序報(bào)錯(cuò)、終止
6:in 操作符
在字典中,我們可以利用 in 操作符判斷鍵是否存在于字典中,如果鍵在字典 dict 里返回 true,否則返回 false??聪旅婧?jiǎn)單代碼
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print('a' in d) print('e' in d)
輸出結(jié)果如下:
True
False
第四行,‘a(chǎn)’這個(gè)鍵在字典中,返回True,第五行,‘’e這個(gè)鍵不在字典中,返回false
7:獲取字典中鍵值對(duì)
現(xiàn)在我們已經(jīng)知道,字典是以鍵值對(duì)(鍵和它對(duì)應(yīng)的鍵值)的形式存儲(chǔ)數(shù)據(jù)的,那么有沒(méi)有什么方法讓我們一次性獲取一個(gè)字典中所有的鍵值對(duì)呢?可以用items()方法
字典的 items() 方法以列表返回可遍歷的(鍵, 值) 元組數(shù)組。意思就是返回一個(gè)列表,列表里面的每個(gè)元素都是元組,一個(gè)元祖就是字典里面的一對(duì)鍵值對(duì)。
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d.items()) for i, j in d.items(): print(i, j)
輸出結(jié)果如下:
dict_items([('a', '我是a'), ('b', 1), ('c', [1, 2, 3]), ('d', (1, 2, 3))])
a 我是a
b 1
c [1, 2, 3]
d (1, 2, 3)
第三行,我們輸出了items()的返回結(jié)果,可以清楚的看到每個(gè)元祖都是字典里面的一個(gè)鍵值對(duì),可以使用list把它轉(zhuǎn)換為一個(gè)列表,能幫助我們更好的訪問(wèn)里面的元素。
第五行,利用items()方法幫助我們遍歷一個(gè)字典,每次輸出一個(gè)鍵和它對(duì)應(yīng)的鍵值。
8:獲取鍵
items()方法可以幫助我們一次性獲取所有的鍵值對(duì),但如果我們只想要獲取鍵呢?可以使用 keys() 方法
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d.keys()) l = list(d.keys()) print(l) print(l[1])
輸出結(jié)果如下:
dict_keys(['a', 'b', 'c', 'd'])
['a', 'b', 'c', 'd']
b
第三行的返回結(jié)果中,只有鍵,第四行把返回結(jié)果轉(zhuǎn)換成了列表,第五行對(duì)這個(gè)列表進(jìn)行輸出,第六行輸出列表中黨的第二個(gè)元素,也就是字典的第二個(gè)鍵
9:獲取值
既然能值獲取到字典中的鍵,當(dāng)然也能只獲取字典中的字。就是values()方法
d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)} print(d.values()) l = list(d.values()) print(l) print(l[1])
輸出結(jié)果如下:
dict_values(['我是a', 1, [1, 2, 3], (1, 2, 3)])
['我是a', 1, [1, 2, 3], (1, 2, 3)]
與keys方法類(lèi)似,只不過(guò)返回結(jié)果是字典中所有的鍵值而已。
以上就是python字典基本操作有哪些的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!