1. 程式人生 > 其它 >【人生苦短,我學 Python】基礎篇——字典(Day10)

【人生苦短,我學 Python】基礎篇——字典(Day10)

技術標籤:人生苦短,我學Pythonpython字典

寫在前面:大家好!我是【AI 菌】,一枚愛彈吉他的程式設計師。我熱愛AI、熱愛分享、熱愛開源! 這部落格是我對學習的一點總結與記錄。如果您也對 深度學習、機器視覺、演算法、Python、C++ 感興趣,可以關注我的動態,我們一起學習,一起進步~
我的部落格地址為:【AI 菌】的部落格
我的Github專案地址是:【AI 菌】的Github

-> 前往【人生苦短,我學 Python】總目錄 <-

文章目錄

一、字典

(1) 介紹字典

在 Python 中, 字典是由一系列的 鍵 — 值對 構成 。每個都與一個相關聯,你可以使用鍵來訪問與之相關聯的值。在字典中,與鍵相關聯的值可以是數字、字串、列表乃至字典。事實上,可將任何 Python 物件用作字典中的值。

在字典中,每個鍵值對 key:value 用冒號 : 分隔,每個鍵值對之間用逗號分隔,整個字典包括在花括號 {} 中 ,格式如下所示:

dict = {key1 :
value1, key2 : value2, key3 : value3}

除此之外,還需要注意的是,字典需嚴格遵循下面兩條規則:

  • 鍵必須是唯一的,但值則不必;
  • 值可以取任何資料型別,但鍵必須是不可變的,只能取如字串,數字等型別。

(2) 建立字典

1、可以先建立一個空字典,再往裡加鍵和值,演示如下:

dict = {}
dict["name"] = "AI Jun"
dict["major"] = "Computer Vision"
dict["date"] = "2021/2/6"
print(dict)

輸出如下:

{'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}

2、當然,也可以直接建立,演示如下:

dict = {'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}
print(dict)

輸出結果:

{'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}

當然,也可以將鍵換成數字,如下所示:

dict1 = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
print(dict1)

輸出結果:

{1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}

(3) 訪問字典

在Python中,我們可以根據鍵訪問值,演示如下:

dict1 = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
print("dict1中1對應的值是:", dict1[1])
print("dict1中2對應的值是:", dict1[2])
print("dict1中3對應的值是:", dict1[3])

結果如下:

dict1中1對應的值是: AI Jun
dict1中2對應的值是: Computer Vision
dict1中3對應的值是: 2021/2/6

二、遍歷字典

(1) 遍歷所有的鍵值對

一般採用 for 迴圈來遍歷整個字典。為了分別獲取鍵和值,所以需要宣告兩個變數,用於儲存鍵值對中的鍵和值。對於這兩個變數,可使用任何名稱。下面的程式碼使用的是key和value,如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key, value in dict.items():
    print(key, value)

使用方法 items() 返回一個鍵值對列表。接下來, for 迴圈依次將每個鍵 — 值對儲存到指定的兩個變數中。輸出如下:

1 AI Jun
2 Computer Vision
3 2021/2/6

注:即便遍歷字典時,鍵值對的返回順序也與儲存順序不同。 Python 不關心鍵值對的儲存順序,而只跟蹤鍵和值之間的關聯關係。

(2) 遍歷字典中所有的鍵

當不需要使用字典中的值時,我們可以使用 方法keys() 遍歷字典中所有的鍵,並將其一一打印出來,如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key in dict.keys():
    print(key)

輸出結果:

1
2
3

事實上,遍歷字典時,會預設遍歷所有的鍵。因此,上述程式碼中的 for key in dict.keys():換成for key in dict:,輸出將不變。只是顯式地使用方法 keys() 可讓程式碼更容易理解。

注:使用方法title()可使首字母大寫,這對於字串型別的鍵有用。

(3) 遍歷字典中所有的值

當只需要遍歷字典中所有的值時,可使用方法 values() ,它返回一個值列表,而不包含任何鍵。使用方法如下:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key in dict.values():
    print(key)

輸出結果:

AI Jun
Computer Vision
2021/2/6

這種做法提取字典中所有的值,而沒有考慮是否重複。涉及的值很少時,這也許不是問題,但如果資料很多,最終的列表可能包含大量的重複項。為剔除重複項,可使用集合set (集合類似於列表,但每個元素都必須是獨一無二的)。使用方法如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6', 4: 'AI Jun'}
for key in set(dict.values()):
    print(key)

程式輸出:

AI Jun
Computer Vision
2021/2/6

注:通過方法set()將values()得到的值列表轉換成了集合的形式

三、字典操作

(1) 增加鍵值對

字典是一種動態結構,可隨時在其中新增鍵值對。演示如下:

dict = {1: 'AI Jun', 2: 'Computer Vision'}
dict[3] = '2021/2/6'
print(dict)

輸出結果:

{1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}

(2) 刪除鍵值對

對於字典中不再需要的資訊,可使用 del 語句將相應的鍵值對徹底刪除。演示如下:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
del dict[1]
print(dict)

輸出結果:

{2: 'Computer Vision', 3: '2021/2/6'}

(3) 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關聯的新值。演示如下:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
dict[2] = "AI"
print(dict)

輸出結果:

{1: 'AI Jun', 2: 'AI', 3: '2021/2/6'}

四、內建函式

(1) Python內建函式

函式描述
len(dict)返回字典元素個數,即鍵值對的總數
str(dict)可以使輸出字典以列印的字串表示

(2) Python字典內建方法

函式描述
dict.items()以列表的形式返回可遍歷的(鍵, 值)
dict.keys()返回一個迭代器,可以使用 list() 來轉換為列表
dict.values()返回一個迭代器,可以使用 list() 來轉換為列表
dict.clear()刪除字典內所有元素,得到的是一個空字典
dict.copy()返回一個字典的淺複製

-> 回到【人生苦短,我學 Python】總目錄 <-

在這裡插入圖片描述
由於水平有限,部落格中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!