【人生苦短,我學 Python】基礎篇——字典(Day10)
寫在前面:大家好!我是【AI 菌】,一枚愛彈吉他的程式設計師。我
熱愛AI、熱愛分享、熱愛開源
! 這部落格是我對學習的一點總結與記錄。如果您也對深度學習、機器視覺、演算法、Python、C++
感興趣,可以關注我的動態,我們一起學習,一起進步~
我的部落格地址為:【AI 菌】的部落格
我的Github專案地址是:【AI 菌】的Github
文章目錄
一、字典
(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() | 返回一個字典的淺複製 |
由於水平有限,部落格中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!