溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中怎么實(shí)現(xiàn)字典操作

發(fā)布時(shí)間:2021-07-05 18:22:40 來源:億速云 閱讀:238 作者:Leah 欄目:編程語言

python中怎么實(shí)現(xiàn)字典操作,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

1:字典的創(chuàng)建

我們知道,python中列表用‘[]’表示,元祖用‘()’表示,字典用的是'{}'表示,創(chuàng)建較列表、元祖、字符串來說較為麻煩點(diǎn),但只要記住鍵值對這三個(gè)字,就能正確創(chuàng)建一個(gè)字典類型的變量的,看下面代碼

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)}
<class 'dict'>
我是a
2

第一行我們創(chuàng)建了一個(gè)叫d的字典類型,在創(chuàng)建時(shí),我們把每一個(gè)鍵名都用英文的引號印起來,而鍵值可以是任意數(shù)據(jù)類型,比如a這個(gè)鍵的鍵值是字符串,b這個(gè)鍵的兼職是數(shù)字,c這個(gè)鍵的鍵值是列表,d這個(gè)鍵的鍵值是元組

第三行,輸出整個(gè)字典,看,它長得是不是和我們創(chuàng)建時(shí)一模一樣,

第四行,利用type函數(shù)檢查d這個(gè)變量的數(shù)據(jù)類型,輸出時(shí)dict,沒錯(cuò),dict就表示字典了,像list表示列表一樣

第五行,值輸出了字典里面a這個(gè)鍵的鍵值

第六行,輸出c這個(gè)鍵值里面的第二個(gè)元素,c的鍵值是list類型,所以我們可以像操作列表那樣操作d['c']

第七航,與第六行類似,只不過鍵值類型換成的元祖

2:修改字典

在創(chuàng)建字典時(shí),我們?yōu)槊恳粋€(gè)鍵都指明了鍵值,如果后面我們想要修改這個(gè)鍵的鍵值怎么辦呢?也很簡單,只需要對這個(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è)鍵的鍵值,第五行對a的鍵值進(jìn)行修改,第六行輸出被修改后的a的鍵值

3:字典的刪除

如果我們在創(chuàng)建完成一個(gè)字典后,想要刪除字典里面的某個(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 <module>
   print(d['a'])
KeyError: 'a'

上面第四行,我們先輸出的a的鍵值,人后利用 del 對a這個(gè)鍵進(jìn)行刪除,在第六行再次訪問a這個(gè)鍵,就會報(bào)錯(cuò)KeyError: 'a'

如果我們想要一次性刪除整個(gè)字典怎么辦呢?也很簡單,只要對第五行的代碼稍作修改,刪掉d后面的['a'],在 del 后面直接跟字典名就可以了。

還可以利用字典的 pop()方法進(jìn)行刪除 del 方法在刪除的時(shí)候不存在返回值,二pop會返回被刪除鍵的鍵值,如果這個(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è)鍵不存在,無法刪除'))

輸入結(jié)果如下:
我是a
我是a
這個(gè)鍵不存在,無法刪除

第三行輸出a鍵的值

第四行刪除a鍵,并返回a鍵的值,因?yàn)檫@個(gè)鍵是存在于字典中的,所以不會返回后面的‘123456’

第五行刪除e鍵,而這個(gè)鍵不存在與字典中,所以返回后面的錯(cuò)誤信息‘這個(gè)鍵不存在,無法刪除’

4:字典的清空

有些時(shí)候,我們想要刪除的不是整個(gè)字典,而只是字典里面的內(nèi)容呢,這個(gè)時(shí)候,我們可以使用字典的clear方法,來對字典進(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方法訪問鍵

字典['鍵名']這種方法雖然訪問字典里面的某個(gè)鍵很方便,但也存在一些不足,如果這個(gè)鍵不存在,程序就會終止,阻礙程序的正常運(yùn)行,如果想要返回正確的錯(cuò)誤信息,并讓程序繼續(xù)運(yùn)行下去,就可以用 .get 方法來訪問字典里面的鍵,

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, in <module>
    print(d['e'])
KeyError: 'e'

第三第四行都訪問了一個(gè)字典中不存在的鍵,而第三行用 .get 方法訪問,返回設(shè)置好的錯(cuò)誤信息,程序繼續(xù)向下運(yùn)行,第四行普通方法訪問,程序報(bào)錯(cuò)、終止

6:in 操作符

在字典中,我們可以利用 in 操作符判斷鍵是否存在于字典中,如果鍵在字典 dict 里返回 true,否則返回 false??聪旅婧唵未a

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:獲取字典中鍵值對

現(xiàn)在我們已經(jīng)知道,字典是以鍵值對(鍵和它對應(yīng)的鍵值)的形式存儲數(shù)據(jù)的,那么有沒有什么方法讓我們一次性獲取一個(gè)字典中所有的鍵值對呢?可以用items()方法

字典的 items() 方法以列表返回可遍歷的(鍵, 值) 元組數(shù)組。意思就是返回一個(gè)列表,列表里面的每個(gè)元素都是元組,一個(gè)元祖就是字典里面的一對鍵值對。

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è)鍵值對,可以使用list把它轉(zhuǎn)換為一個(gè)列表,能幫助我們更好的訪問里面的元素。

第五行,利用items()方法幫助我們遍歷一個(gè)字典,每次輸出一個(gè)鍵和它對應(yīng)的鍵值。

8:獲取鍵

items()方法可以幫助我們一次性獲取所有的鍵值對,但如果我們只想要獲取鍵呢?可以使用 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)換成了列表,第五行對這個(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)]

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI