官术网_书友最值得收藏!

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é)果如下。

主站蜘蛛池模板: 横山县| 溧阳市| 博野县| 鞍山市| 抚宁县| 白银市| 若羌县| 会东县| 湘阴县| 崇义县| 康保县| 大城县| 来宾市| 马公市| 驻马店市| 山西省| 芜湖市| 临海市| 黄梅县| 平乐县| 静宁县| 澄城县| 曲沃县| 霍城县| 深水埗区| 方正县| 印江| 叙永县| 依安县| 轮台县| 静乐县| 宜良县| 新宾| 武陟县| 东阳市| 苍南县| 海林市| 雅安市| 澳门| 璧山县| 革吉县|