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

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

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

2.通過映射函數(shù)創(chuàng)建字典
通過映射函數(shù)創(chuàng)建字典的方法如下。

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

程序執(zhí)行后的輸出結果如下。

可以看到創(chuàng)建了一個字典。
3.通過給定的關鍵字參數(shù)創(chuàng)建字典
通過給定的關鍵字參數(shù)創(chuàng)建字典的語法如下。

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

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

運行結果如下。

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

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

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

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

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

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

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

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

2.9.4 遍歷字典

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

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

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

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

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

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

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

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

運行結果如下。

- The DevOps 2.3 Toolkit
- Beginning C++ Game Programming
- R語言經(jīng)典實例(原書第2版)
- PaaS程序設計
- Python從菜鳥到高手(第2版)
- 機器人Python青少年編程開發(fā)實例
- Learning Network Forensics
- Android系統(tǒng)級深入開發(fā)
- 蘋果的產品設計之道:創(chuàng)建優(yōu)秀產品、服務和用戶體驗的七個原則
- Create React App 2 Quick Start Guide
- C++寶典
- Java Hibernate Cookbook
- SAP Web Dynpro for ABAP開發(fā)技術詳解:基礎應用
- Java RESTful Web Service實戰(zhàn)
- Spring MVC Blueprints