在先前的教學中,我討論了 Python 中非常通用且靈活的物件類型,即清單。在本文中,我將繼續複習另一種靈活的 Python 物件類型,稱為字典(也稱為關聯數組或雜湊)。與清單一樣,字典是一個需要掌握的重要概念,以便在您的 Python 之旅中繼續前進。
如果您閱讀過清單文章,就會很容易理解字典的概念。它們非常類似於列表,但有兩個主要區別:
字典中的每個鍵都有一個值,它可以是任何 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中文網其他相關文章!