Python 字典基礎知識的令人耳目一新的回顧

王林
發布: 2023-09-03 20:09:02
原創
1404 人瀏覽過

Python 字典基础知识的令人耳目一新的回顾

在先前的教學中,我討論了 Python 中非常通用且靈活的物件類型,即清單。在本文中,我將繼續複習另一種靈活的 Python 物件類型,稱為字典(也稱為關聯數組或雜湊)。與清單一樣,字典是一個需要掌握的重要概念,以便在您的 Python 之旅中繼續前進。

什麼是字典?

如果您閱讀過清單文章,就會很容易理解字典的概念。它們非常類似於列表,但有兩個主要區別:

  1. 它們是無序集合(與有序列表不同)。
  2. 鍵用於存取項目而不是位置(索引)。

字典中的每個鍵都有一個值,它可以是任何 Python 物件類型。也就是說,字典可以被視為鍵值對。但是,請注意不能是List或Dictionary類型。

讓我們建立一個英法字典

正如我們在上一節中看到的,字典只是一組無序的鍵值對。讓我們使用這個概念來創建我們的第一個範例:英語-法語字典。該字典可以如下建立:

english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':' porte'}

字典 english_french 包含五個英語單詞,設定為,其法語意義設定為

假設我們想知道如何用法語說 pen。我們只需執行以下操作:

english_french['pen']

#您將在其中獲得 stylo 作為傳回值。

讓事情變得更有趣

假設我們有一個 french_spanish 字典,其單字與 english_french 字典中的單字相同,如下所示:

french_spanish = {'papier':'papel', 'stylo':'pluma', 'voiture':'coche', 'table':'mesa', 'porte':' puerta'}

好吧,有人問您如何用西班牙語說 door,而您手邊沒有英語-西班牙語字典!但是,不用擔心,有一個解決方案。查閱您的 english_french 字典中的單字,然後使用結果查閱 french_spanish 字典。明白了嗎?讓我們看看如何在 Python 中做到這一點:

french_spanish[english_french['door']]

#結果應該是 puerta。這不是很好嗎?儘管您沒有英語-西班牙語詞典,但您剛剛得到了西班牙語中的 door 一詞。

更多字典操作

在前面的範例中,我們了解如何建立字典並存取字典中的項目。讓我們看看可以對字典進行更多操作。我將在下面的範例中使用 english_french 字典。

字典中有多少條目?

換句話說,這個操作的目的是傳回Dictionary中鍵值對的數量。這可以使用 len() 運算子來執行,如下所示:

len(english_french)

您應該回傳 5

刪除鍵

字典中項目的刪除是透過進行的。例如,假設我們想要從字典中刪除單字(鍵) door 。這可以簡單地完成如下:

del english_french['door']

#這將刪除 door 及其#porte

字典中是否存在該鍵?

在上一小節中,我們從字典中刪除了 door。如果我們想檢查 door 是否仍然存在於字典中,我們輸入:

english_french 中的「門」

應該回傳 False

因此,您認為以下語句會回傳什麼?繼續嘗試一下(注意 not)。

'door' 不在 english_french

#如果我們嘗試存取字典中不存在的會發生什麼事?說 english_french['door']。在這種情況下,您將收到類似於以下內容的錯誤:

回溯(最近一次呼叫最後):

  檔案“dictionary.py”,第 7 行,位於 <module></module>

    列印 english_french['door']

KeyError: 'door'

建立字典的副本

您可能需要 english_french 字典的副本,並將其指派給另一個字典。這可以使用 copy() 函數簡單地完成,如下所示:

new_english_french = english_french.copy()

#巢狀字典

正如我們上面提到的,字典中的值可以是任何類型,包括字典。這稱為嵌套。範例如下:

學生 = {'ID':{'name':'Abder-Rahman', 'number':'1234'}}

因此,如果您輸入 student['ID'],您應該得到:

{'name': 'Abder-Rahman', 'number': '1234'} 

#迭代字典

讓我們回到 english_french 字典。您可以透過多種方式迭代字典的專案:

english_french 中的單字:

    印字

該語句的結果如下:

car

pen

paper

#door

table 

#請注意,結果中的的順序與 english_french 字典中的順序不同。現在您可以明白為什麼我說字典被視為無序集合了。

#迭代的另一種方法如下:

對於 english_french.iterkeys() 中的單字:

#    印字

請注意,我們使用了 iterkeys() 函數。類似的可用於迭代值的函數,即 itervalues(),如下所示:

用於 english_french.itervalues() 中的意義:

#    列印意義

本例中的結果應如下所示:

voiture

#stylo

#papier

#porte

#table

建立字典的替代方法

還有其他方法可以使用 dict 建構子在 Python 中建立字典。使用 dict 建立相同字典 ID 的一些範例如下:

ID = dict(name = 'Abder-Rahman', number = 1234)

ID = dict([('name','Abder-Rahman'),('number',1234)])

ID = dict(zip(['name','number'],['Abder-Rahman',1234])) # 鍵和值作為列表

您可以使用字典做更多事情。查看 Python 文件以獲取更多資訊。

以上是Python 字典基礎知識的令人耳目一新的回顧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!