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

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)建一個客戶資料的字典,然后遍歷字典,輸出客戶名稱和電話,代碼如下。

運行結果如下。

主站蜘蛛池模板: 星子县| 阳山县| 迁安市| 桂平市| 湘阴县| 和政县| 漠河县| 忻州市| 句容市| 英超| 游戏| 榆社县| 南宁市| 沂南县| 云阳县| 金昌市| 合江县| 弥渡县| 罗城| 舞钢市| 湄潭县| 马尔康县| 奉化市| 巴东县| 靖安县| 宣威市| 孝义市| 雅江县| 怀柔区| 福安市| 孝义市| 耿马| 江西省| 北宁市| 德保县| 任丘市| 上栗县| 高雄市| 化州市| 镇平县| 赤峰市|