- Python+Tableau數(shù)據(jù)可視化之美
- 王紅明 張鴻斌編著
- 1398字
- 2021-11-12 11:33:08
2.9 字典
在Python中,字典是一系列鍵-值對(duì)。每個(gè)鍵都與一個(gè)值相關(guān)聯(lián),可以使用鍵來(lái)訪問(wèn)與之相關(guān)聯(lián)的值。與鍵相關(guān)聯(lián)的值可以是數(shù)字、字符串、列表和字典。總之,字典可以存儲(chǔ)任何類(lèi)型對(duì)象。如下所示為一個(gè)學(xué)生分?jǐn)?shù)的字典。

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

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

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

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

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

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

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

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

運(yùn)行結(jié)果如下。

2.9.3 添加、修改和刪除字典
1.向字典中添加鍵-值對(duì)
要在字典運(yùn)行隨時(shí)在其中添加鍵-值對(duì),添加鍵-值的方法如下所示。

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

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

運(yùn)行程序,輸出結(jié)果。字典中的張三的分?jǐn)?shù)被修改成了565,如下所示。

3.刪除字典中的鍵-值對(duì)
對(duì)于字典中不需要的元素,可以使用del語(yǔ)句來(lái)刪除,如下所示。

運(yùn)行程序,輸出的結(jié)果。字典中的張三和520被刪除,如下所示。

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

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

2.9.4 遍歷字典

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

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

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

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

上述代碼運(yùn)行后輸出的結(jié)果如下所示。

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

上述代碼運(yùn)行后輸出的結(jié)果如下所示。

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

運(yùn)行結(jié)果如下。

- Spring 5.0 Microservices(Second Edition)
- 零基礎(chǔ)搭建量化投資系統(tǒng):以Python為工具
- Python 3.7網(wǎng)絡(luò)爬蟲(chóng)快速入門(mén)
- Manga Studio Ex 5 Cookbook
- 跟“龍哥”學(xué)C語(yǔ)言編程
- 認(rèn)識(shí)編程:以Python語(yǔ)言講透編程的本質(zhì)
- 趣學(xué)Python算法100例
- Wireshark Network Security
- Python進(jìn)階編程:編寫(xiě)更高效、優(yōu)雅的Python代碼
- Building a Recommendation Engine with Scala
- Learning Laravel 4 Application Development
- Python深度學(xué)習(xí):模型、方法與實(shí)現(xiàn)
- Java面向?qū)ο蟪绦蛟O(shè)計(jì)
- Internet of Things with ESP8266
- Learning Redis