程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

掌握Python字典的8個示例

編輯:Python

點擊上方“小白學視覺”,選擇加"星標"或“置頂

重磅干貨,第一時間送達

引言

數據結構是任何編程語言的關鍵部分。為了創建健壯和性能良好的產品,必須非常了解數據結構。

在本文中,我們將研究Python編程語言的重要數據結構,即字典(Dictionary)。

字典是鍵值對的無序集合。每個條目都有一個鍵和值。字典可以視為具有特殊索引的列表。

鍵必須是唯一的和不可變的。因此,我們可以使用字符串、數字(整型或浮點型)或元組作為鍵。值可以是任何類型。

考慮一個我們需要存儲學生成績的案例。我們可以將它們存儲在字典或列表中。

通過使用字典,我們可以通過提供學生的姓名(鍵)來查詢每個學生的成績。然而在列表中,為了能夠獲得特定學生的成績,我們需要一個額外的列表。

新列表包含學生的姓名,並且與成績列表完全相同的順序。

因此,對於這種情況,字典是比列表更好的選擇。

簡短介紹之後,讓我們開始深入研究字典的示例。這些示例將涵蓋詞典的功能以及對其進行操作的功能和方法。

1. 創建字典

我們可以通過在花括號之間提供0個或更多的鍵值對來創建字典。

empty_dict = {}
grades = {'John':'A', 'Emily':'A+', 'Betty':'B', 'Mike':'C', 'Ashley':'A'}
grades
{'Ashley': 'A', 'Betty': 'B', 'Emily': 'A+', 'John': 'A', 'Mike': 'C'}

2. 訪問值

我們通過提供索引來訪問列表中的值。類似地,在字典中,通過使用鍵來訪問值。

grades['John']
'A'
grades.get('Betty')
'B'

3. 所有值/所有鍵

keys方法用於獲取所有鍵。

grades.keys()
dict_keys(['John', 'Emily', 'Betty', 'Mike', 'Ashley'])

返回對象是一個可迭代的dict_keys對象。因此,我們可以在for循環中對其進行迭代訪問。

類似地,value方法返回所有值。

grades.values()
dict_values(['A', 'A+', 'B', 'C', 'A'])

我們無法在dict_keys或dict_values上建立索引,但可以將它們轉換為列表,然後使用索引。

list(grades.values())[0]
'A'

items方法返回元組中的鍵值對。

grades.items()
dict_items([('John', 'A'), ('Emily', 'A+'), ('Betty', 'B'), ('Mike', 'C'), ('Ashley', 'A')])

4. 更新或添加項目

字典是可變的,因此我們可以更新、添加或刪除項目。更新或添加項的語法是相同的。如果字典中存在給定的鍵,則更新現有項的值。否則,將創建一個新項(即鍵值對)。

grades['Edward'] = 'B+'
grades['John'] = 'B'
grades
{'Ashley': 'A',
'Betty': 'B',
'Edward': 'B+',
'Emily': 'A+',
'John': 'B',
'Mike': 'C'}

5. 刪除項目

我們可以使用del或pop函數刪除一個項目。我們只是傳遞要刪除項目的鍵。

del(grades['Edward'])
grades.pop('Ashley')
'A'
grades
'Betty': 'B', 'Emily': 'A+', 'John': 'B', 'Mike': 'C'}

與del函數不同,pop函數返回被刪除項的值。因此,我們可以選擇將它賦給一個變量。

6. 遍歷字典

我們可以遍歷字典。默認情況下,變例基於鍵的。

for i in grades:
print(i)
John
Emily
Betty
Mike

7.從列表中創建一個字典

我們可以使用列表或元組列表創建字典。

a = [['A',4], ['B',5], ['C',11]]
dict(a)
{'A': 4, 'B': 5, 'C': 11}
b = [('A',4), ('B',5), ('C',11)]
dict(b)
{'A': 4, 'B': 5, 'C': 11}

8.復制字典

grades = {'John':'A', 'Emily':'A+', 'Betty':'B'}
dict1 = grades
dict2 = grades.copy()
dict3 = dict(grades)

所有的dict1,dict2和dict3都包含與grades完全相同的鍵值對。但是,dict1只是指向grades中鍵/值對的指針。因此,grades的任何變化也將改變dict1。

dict2和dict3是內存中的獨立對象,因此它們不會受到grades變化的影響。

我們需要特別注意如何復制字典。

總結

Dictionary 是 Python 中非常重要的數據結構,在許多情況下都會使用。我們在這篇文章中舉的例子將會涵蓋大部分你需要了解的關於字典的知識。它們會讓你在使用字典的時候感覺很順暢。

好消息!

小白學視覺知識星球

開始面向外開放啦

下載1:OpenCV-Contrib擴展模塊中文版教程
在「小白學視覺」公眾號後台回復:擴展模塊中文教程,即可下載全網第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。
下載2:Python視覺實戰項目52講
在「小白學視覺」公眾號後台回復:Python視覺實戰項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰項目,助力快速學校計算機視覺。
下載3:OpenCV實戰項目20講
在「小白學視覺」公眾號後台回復:OpenCV實戰項目20講,即可下載含有20個基於OpenCV實現20個實戰項目,實現OpenCV學習進階。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN、算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved