- Python+Tableau數據可視化之美
- 王紅明 張鴻斌編著
- 1398字
- 2021-11-12 11:33:08
2.9 字典
在Python中,字典是一系列鍵-值對。每個鍵都與一個值相關聯,可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字符串、列表和字典。總之,字典可以存儲任何類型對象。如下所示為一個學生分數的字典。

在Python中,字典用放在花括號{}中的一系列鍵-值對表示。每個鍵-值對之間用逗號(,)分隔。
注意:
在字典中鍵是唯一的,不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,后一個值會被記住。鍵必須是不可變的,所以可以用數字、字符串或元組充當,但用列表就不行。
2.9.1 字典的創建
1.創建空元組
在Python中,可以直接創建空的字典,如下所示的dictionary為一個空字典。

也可以通過dict()函數來創建一個空字典,如下所示。

2.通過映射函數創建字典
通過映射函數創建字典的方法如下。

zip()函數用于將多個列表或元組對應位置的元素組合為元組,并返回包含這些內容的zip對象。其中,list1用于指定要生成字典的鍵,list2用于指定要生成字典的值。如果list1和list2長度不同,則與最短的列表長度相同。如下所示為通過映射函數創建的字典。

程序執行后的輸出結果如下。

可以看到創建了一個字典。
3.通過給定的關鍵字參數創建字典
通過給定的關鍵字參數創建字典的語法如下。

key1、key2、keyn等表示參數名,必須是唯一的。value1、value2、valuen等表示參數值,可以是任何數據類型。
2.9.2 通過鍵值訪問字典
要獲取字典中與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵,如下所示。

上述程序運行后,會直接輸出480。
案例16:中考成績查詢系統
在IDLE中創建一個名為“中考成績查詢.py”的文件,在文件中創建一個學生姓名與成績的字典,然后讓用戶輸入學生姓名,再獲取字典中學生姓名對應的值,然后輸出即可,代碼如下。

運行結果如下。

2.9.3 添加、修改和刪除字典
1.向字典中添加鍵-值對
要在字典運行隨時在其中添加鍵-值對,添加鍵-值的方法如下所示。

指定字典名、鍵(注意使用方括號)和相關聯的值(注意使用“=”)。
上述程序運行后的結果如下所示。

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

運行程序,輸出結果。字典中的張三的分數被修改成了565,如下所示。

3.刪除字典中的鍵-值對
對于字典中不需要的元素,可以使用del語句來刪除,如下所示。

運行程序,輸出的結果。字典中的張三和520被刪除,如下所示。

4.刪除整個字典
可以使用del命令刪除整個字典,如下所示。

5.通過clear()刪除字典的元素
如果想刪除字典中的元素,可以使用clear()函數實現,如下所示。

2.9.4 遍歷字典

字典是以鍵-值對的形式存儲數據的,所以需要通過這些鍵-值對進行獲取。Python提供了遍歷字典的方法,通過遍歷可以獲取字典中的全部鍵-值對。
使用字典對象的items()函數可以獲取字典鍵-值對的元組列表,具體語法如下。

1.分別獲取鍵和值
要想獲得具體的鍵-值對,可以通過for循環遍歷該元組列表。如下所示為遍歷fractions字典,輸出鍵和值。

遍歷字典中所有的鍵-值對時,需要定義兩個變量(此例中定義了x和y),用于存儲鍵和值。并使用字典名和items()。上述代碼運行后輸出的結果如下所示。

2.只獲取鍵
只遍歷字典中的所有鍵時,需要定義一個變量,并使用字典名和keys(),如下所示。

上述代碼運行后輸出的結果如下所示。

3.只獲取值
只遍歷字典中的所有值時,需要定義一個變量,并使用字典名和values(),如下所示。

上述代碼運行后輸出的結果如下所示。

案例17:打印客戶名稱和電話
在IDLE中創建一個名為“客戶資料.py”的文件,在文件中創建一個客戶資料的字典,然后遍歷字典,輸出客戶名稱和電話,代碼如下。

運行結果如下。

- Instant Node Package Manager
- 騰訊iOS測試實踐
- Python for Secret Agents:Volume II
- Microsoft Dynamics 365 Extensions Cookbook
- HoloLens Beginner's Guide
- 概率成形編碼調制技術理論及應用
- 碼上行動:用ChatGPT學會Python編程
- MySQL從入門到精通(軟件開發視頻大講堂)
- Microsoft Dynamics AX 2012 R3 Financial Management
- Swift 4從零到精通iOS開發
- 編程改變生活:用Python提升你的能力(進階篇·微課視頻版)
- UML2面向對象分析與設計(第2版)
- Mastering VMware Horizon 7(Second Edition)
- Mobile Forensics:Advanced Investigative Strategies
- Python第三方庫開發應用實戰