首頁  >  文章  >  後端開發  >  python字典基本運算有哪些

python字典基本運算有哪些

尚
原創
2020-01-15 10:25:2714779瀏覽

python字典基本運算有哪些

字典是python中五中基本資料型別之一,雖然它的賦值稍微麻煩點,但用起來真的很方便。它用鍵值對來存放數據,所謂鍵值對,就是一個鍵,對應一個值,如果後面對前面的鍵再次賦值,第一次的值就被覆蓋掉。

1:字典的創建

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

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])

輸出結果如下:

{'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}
7f7a529d7c829355be039cf711e6e765
我是a
2

第一行我們建立了一個叫d的字典類型,在創建時,我們把每一個鍵名都用英文的引號印起來,而鍵值可以是任意資料型,例如a這個鍵的鍵值是字串,b這個鍵的兼職是數字,c這個鍵的鍵值是列表,d這個鍵的鍵值是元組

第三行,輸出整個字典,看,它長得是不是跟我們創建時一模一樣,

第四行,利用type函數檢查d這個變數的資料型,輸出時dict,沒錯,dict就表示字典了,像list表示列表一樣

第五行,值輸出了字典裡面a這個鍵的鍵值

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

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

2:修改字典

在創建字典時,我們為每一個鍵都指明了鍵值,如果後面我們要修改這個鍵的鍵值怎麼辦呢?也很簡單,只需要對這個鍵重新賦值就可以了,如下:

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}


print(d['a'])
d['a'] = '我是被修改后的a'
print(d['a'])

輸出結果如下:

我是a
我是被修改後的a

第四行我們輸出了最初a這個鍵的鍵值,第五行對a的鍵值進行修改,第六行輸出被修改後的a的鍵值

#3:字典的刪除

如果我們在建立完成一個字典後,想要刪除字典裡面的某個鍵,或是整個字典,這時我們可以用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 4225fa317875f3e92281a7b1a5733569
    print(d['a'])
KeyError: 'a'

#上面第四行,我們先輸出的a的鍵值,人後利用del 對a這個鍵進行刪除,在第六行再次存取a這個鍵,就會報錯KeyError: 'a'

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

也可以利用字典的pop()方法進行刪除del 方法在刪除的時候不存在回傳值,二pop會傳回被刪除鍵的鍵值,如果這個鍵不存在,還可以傳回指定的錯誤訊息,如下:

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', '这个键不存在,无法删除'))

输入结果如下:
我是a
我是a
这个键不存在,无法删除

第三行輸出a鍵的值

第四行刪除a鍵,並傳回a鍵的值,因為這個鍵是存在於字典中的,所以不會返回後面的'123456'

第五行刪除e鍵,而這個鍵不存在與字典中,所以返回後面的錯誤訊息'這個鍵不存在,無法刪除'

4:字典的清空

有些時候,我們想要刪除的不是整個字典,而只是字典裡面的內容呢,這個時候,我們可以使用字典的clear方法,來對字典進行一個清空,操作如下

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

d.clear()
print(d)

输出如下:
{}

可以看出,此時d已經成為了一個空字典

5:.get方法存取鍵

#字典['鍵名']這個方法雖然存取字典裡面的某個鍵很方便,但也存在一些不足,如果這個鍵不存在,程式就會終止,阻礙程式的正常運行,如果想要傳回正確的錯誤訊息,並讓程式繼續運行下去,就可以用.get 方法來存取字典裡面的鍵,

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

print(d.get('e', '这个键不存在'))
print(d['e'])

输入如下:
这个键不存在
Traceback (most recent call last):
  File "E:/py project/杂例/dict_demo.py", line 6, in <module>
    print(d[&#39;e&#39;])
KeyError: &#39;e&#39;

第三第四行都存取了一個字典中不存在的鍵,而第三行用.get 方法訪問,傳回設定好的錯誤訊息,程式繼續往下運行,第四行普通方法訪問,程式報錯、終止

 6:in 運算子

在字典中,我們可以利用 in 運算子判斷鍵是否存在於字典中,如果鍵在字典dict 裡回傳true,否則回傳false。看下面簡單程式碼

d = {&#39;a&#39;: &#39;我是a&#39;, &#39;b&#39;: 1, &#39;c&#39;: [1, 2, 3], &#39;d&#39;: (1, 2, 3)}


print(&#39;a&#39; in d)
print(&#39;e&#39; in d)

輸出結果如下:

True
False

第四行,'a'這個鍵在字典中,返回True,第五行,''e這個鍵不在字典中,回傳false

7:获取字典中键值对

现在我们已经知道,字典是以键值对(键和它对应的键值)的形式存储数据的,那么有没有什么方法让我们一次性获取一个字典中所有的键值对呢?可以用items()方法

字典的 items() 方法以列表返回可遍历的(键, 值) 元组数组。意思就是返回一个列表,列表里面的每个元素都是元组,一个元祖就是字典里面的一对键值对。

d = {&#39;a&#39;: &#39;我是a&#39;, &#39;b&#39;: 1, &#39;c&#39;: [1, 2, 3], &#39;d&#39;: (1, 2, 3)}

print(d.items())

for i, j in d.items():
    print(i, j)

输出结果如下:

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()的返回结果,可以清楚的看到每个元祖都是字典里面的一个键值对,可以使用list把它转换为一个列表,能帮助我们更好的访问里面的元素。

第五行,利用items()方法帮助我们遍历一个字典,每次输出一个键和它对应的键值。

8:获取键

items()方法可以帮助我们一次性获取所有的键值对,但如果我们只想要获取键呢?可以使用 keys() 方法

d = {&#39;a&#39;: &#39;我是a&#39;, &#39;b&#39;: 1, &#39;c&#39;: [1, 2, 3], &#39;d&#39;: (1, 2, 3)}

print(d.keys())
l = list(d.keys())
print(l)
print(l[1])

输出结果如下:

dict_keys(['a', 'b', 'c', 'd'])
['a', 'b', 'c', 'd']
b

第三行的返回结果中,只有键,第四行把返回结果转换成了列表,第五行对这个列表进行输出,第六行输出列表中党的第二个元素,也就是字典的第二个键

9:获取值

既然能值获取到字典中的键,当然也能只获取字典中的字。就是values()方法

d = {&#39;a&#39;: &#39;我是a&#39;, &#39;b&#39;: 1, &#39;c&#39;: [1, 2, 3], &#39;d&#39;: (1, 2, 3)}

print(d.values())
l = list(d.values())
print(l)
print(l[1])

输出结果如下:

dict_values(['我是a', 1, [1, 2, 3], (1, 2, 3)])
['我是a', 1, [1, 2, 3], (1, 2, 3)]

与keys方法类似,只不过返回结果是字典中所有的键值而已。

python学习网,免费的在线学习python平台,欢迎关注!

以上是python字典基本運算有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn