Python使用字典(61)

在Python中,字典是一系列鍵——值對。每個鍵都與一個值相關(guān)聯(lián),你可以使用鍵來訪問與之相關(guān)的值。與鍵相關(guān)的值可以是數(shù)字、字符串、列表、乃至字典。事實(shí)上,可將任何Python對象用作字典的值。

在Python中,字典用放在花括號{}中的一系列鍵——值對表示。

鍵——值對是兩個相關(guān)聯(lián)的值。指定鍵時,Python將返回與之相關(guān)的值。鍵和值之間用冒號分隔,而鍵——值對之間用逗號分隔。在字典中,你想儲存多少個鍵——值對都可以。

python大大的圖

圖片發(fā)自簡書App

我的圖

圖片發(fā)自簡書App

最簡單的字典只有一個鍵——值對,如第五行代碼。這個字典中只存儲了一項(xiàng)有關(guān)alien_0的信息,具體地說是這個外星人的顏色。在這個字典中,字符串'color'是一個鍵,與之相關(guān)的值為'green'。

1.訪問字典中的值

要獲取與鍵相關(guān)的值,可依次指定字典名和放在放在方括號內(nèi)的鍵。見代碼第6行,這將返回字典alien_0中與鍵'color'相關(guān)的值:green。

2.添加鍵——值對

字典是一種動態(tài)結(jié)構(gòu),可隨時在其中添加鍵——值對。要添加鍵——值對,可依次指定字典名、用方括號括起的鍵和相關(guān)的值。

在字典alien_0中添加兩項(xiàng)信息:外星人的x坐標(biāo)和y坐標(biāo),讓我們能夠在屏幕的特定位置顯示該外星人。我們將這個外星人放在屏幕左邊緣,且離屏幕上邊緣25像素的地方。由于屏幕坐標(biāo)系的原點(diǎn)通常為左上角,因此要將該外星人放在屏幕左邊緣,可將x坐標(biāo)設(shè)置為0;要將外星人放在離屏幕頂部25像素的地方,可將y坐標(biāo)設(shè)置為25。見大大代碼8~9行。當(dāng)打印這個字典時將看到兩個新增的鍵——值對。

注意,鍵——值對的排列順序與添加順序不同。Python不關(guān)心鍵——值對的添加順序,而只關(guān)心鍵和值之間的關(guān)聯(lián)關(guān)系。這可以以13~18行代碼來說明,最終我們打印出來的字典順序與我們定義的順序不同。同理,我們在向字典中單個添加元素時,打印出的字典最終順序可能也與我們添加元素順序不同。

3.先創(chuàng)建一個空字典

有時候,在空字典中添加鍵——值對是為了方便,而有時候必須這樣做。為此,可先使用一對空的花括號定義一個字典,再分別添加各個鍵——值對。使用字典來存儲用戶提供的數(shù)據(jù)或編寫能自動生成大量鍵——值對的代碼時,通常都需要先定義一個空字典。

4.修改字典中的值

要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關(guān)聯(lián)的新值。例如,假設(shè)隨著游戲的進(jìn)行,需要將一個外星人從綠色改為紅色,見大大代碼第7行。

這邊比較有意思的是字典結(jié)合if語句對一個能夠以不同速度移動的外星人的位置進(jìn)行跟蹤。

圖片發(fā)自簡書App

這種計(jì)數(shù)很棒:通過修改外星人字典中的值,可改變外星人的行為。例如要將這個速度中等的外星人變成速度很快的外星人,只需在第五行修改字典中的值即可。這里fast是要帶引號的,書上有一點(diǎn)小瑕疵。

圖片發(fā)自簡書App

5.刪除鍵——值對

對于字典中不再需要的信息,可使用del語句將相應(yīng)的鍵——值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵。

注意:刪除的鍵——值對永遠(yuǎn)消失了。

6.由類似對象組成的字典

字典可以存儲一個對象(游戲中的一個外星人)的多種信息,也可以使用字典來存儲眾多對象的同一種信息。例如,假設(shè)你要調(diào)查很多人,詢問他們最喜歡的編程語言,可使用一個字典來存儲這種簡單調(diào)查的結(jié)果。如大大代碼13~17行,我們將一個較大的字典放在了多行中。其中每個鍵都是一個被調(diào)查者的名字,而每個值都是被調(diào)查者喜歡的語言。確定需要使用多行來定義字典時,在輸入左花括號后按回車鍵,再在下一行縮進(jìn)四個空格(個數(shù)可以隨意),指定第一個鍵——值對,并在它后面加上一個逗號。此后你再次按回車鍵時,文本編輯器將自動縮進(jìn)后續(xù)鍵——值對,且縮進(jìn)量與第一個鍵——值對相同。

定義好字典后,在最后一個鍵——值對的后面加上逗號,為以后在下一行添加鍵——值對做好準(zhǔn)備。最后加上右邊花括號。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文為《爬著學(xué)Python》系列第九篇文章。 從現(xiàn)在開始算是要進(jìn)入“真刀真槍”的Python學(xué)習(xí)了。之所以這么說,...
    SyPy閱讀 2,230評論 0 14
  • Python簡介 Python歷史 Python 是由 Guido van Rossum 在八十年代末和九十年代初...
    莫名其妙的一生閱讀 1,139評論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 我必須要說明一點(diǎn),今年已經(jīng)過了5個月了,今天也是今年的第19周,我的心中有些感慨,也充滿了滿滿的懷念。在這里把我上...
    陳總閱讀 242評論 0 1
  • 上個星期跟老蔣出去吃飯,吃完我說得走走減肥,他無奈陪我在廣場附近散步。我正興致勃勃地跟他說要去旅游的事,發(fā)現(xiàn)旁邊的...
    小小南說閱讀 550評論 0 1

友情鏈接更多精彩內(nèi)容