在先前的教學中,我討論了 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中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境