掌握Python字典的12個例子

2022-06-14 09:09:11 字數 4225 閱讀 3976

作者|soner yıldırım

編譯|vk

資料結構是任何程式語言的關鍵部分。為了建立健壯且效能良好的產品,必須非常了解資料結構。

在這篇文章中,我們將研究python程式語言的乙個重要資料結構,即字典。

字典是鍵值對的無序集合。每個項都有乙個鍵和值。字典可以看作是乙個有特殊索引的列表。

鍵必須是唯一的和不可變的。我們可以使用字串、數字(int或float)或元組作為鍵。值可以是任何型別。

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

使用字典可以讓我們通過提供學生姓名(key)來獲取每個學生的成績。另一方面,為了能夠獲得某個學生的成績,我們需要乙個額外的列表。

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

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

在簡短的介紹之後,讓我們從示例開始深入研究字典。這些例子將涵蓋字典的特性,以及對它們進行操作的函式和方法。

1.建立字典

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

empty_dict = {}

grades =

grades

2.訪問值

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

grades['john']

'a'grades.get('betty')

'b'

3.訪問所有值或所有鍵

keys方法用於獲取所有鍵。

grades.keys()

dict_keys(['john', 'emily', 'betty', 'mike', 'ashley'])

返回物件是dict_keys物件,它是iterable型別。因此,我們可以在for迴圈中迭代它。

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

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

5.使用新字典更新

我們也可以將字典傳遞給update函式。字典將根據新字典中的項進行更新。舉個例子會更清楚。

考慮以下字典:

grades = 

grades_new =

如果我們根據grades_new更新grades ,john和betty的值也會更新。此外,還將新增新項('sam':'a')。

grades.update(grades_new)

grades

6.刪除項

我們可以使用del或pop函式刪除項。我們只傳遞要刪除的項的鍵。

del(grades['edward'])

grades.pop('ashley')

'a'grades

'betty': 'b', 'emily': 'a+', 'john': 'b', 'mike': 'c'}

與del函式不同,pop函式返回已刪除項的值。因此,我們可以選擇將其分配給乙個變數。

7.字典作為iterable

我們可以迭代字典。預設情況下,迭代基於鍵。

for i in grades:

print(i)

john

emily

betty

mike

我們也可以對值進行迭代(grades.values()grades.items()).

8.字典生成式

它類似於列表生成式。字典生成式是一種基於iterables的字典建立方法。

iterable中的元素成為字典的鍵。這些值是根據字典生成式中的賦值確定的。

9.從列表建立字典

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

a = [['a',4], ['b',5], ['c',11]]

dict(a)

b = [('a',4), ('b',5), ('c',11)]

dict(b)

10.從字典到資料幀

pandas的dataframe函式可用於使用字典建立資料幀。鍵變成列名,值變成行。

到目前為止,我們已經用值為字串的字典做了一些示例。但是,字典中的值可以是任何型別,例如列表、numpy陣列、其他字典等等。

在從字典建立資料幀的情況下,值由陣列組成(例如list、numpy array)。

11.len和clear

len函式返回字典中的項數(即長度)。clear方法用於刪除字典中的所有項,因此我們將得到乙個空字典。

len(grades)

4grades.clear()

len(grades)

0

12.複製字典
grades = 

dict1 = grades

dict2 = grades.copy()

dict3 = dict(grades)

所有dict1、dict2和dict3都包含與分數完全相同的鍵值對。然而,dict1只是乙個指向grades的指標。因此,grades的任何變化也會改變dict1。

dict2和dict3是記憶體中獨立的物件,因此它們不會受到grades變化的影響。

我們需要特別注意我們如何複製字典。

好處:使用python3.9合併和更新操作符

python3.9為字典提供了merge(「|」)和update(「|=」)運算子。我還沒有安裝python 3.9,所以我將使用python文件中的示例:

>>> x = 

>>> y =

>>> x | y

>>> y | x

字典是python中非常重要的資料結構,在許多情況下都會用到。我們在這篇文章中所做的例子將涵蓋你需要了解的字典的大部分內容。

然而,當然還有更多技巧。和其他技能一樣,熟能生巧,你會在不斷練習中掌握。

歡迎關注磐創ai部落格站:

sklearn機器學習中文官方文件:

歡迎關注磐創部落格資源彙總站:

Python字典應用的乙個例子

python view plain copy usr bin env python 定義乙個空字典 db defnewuser prompt login desired while true name raw input prompt 根據關鍵字name看字典中是否已存在此鍵值對 ifdb.has ...

關於定時執行任務 Crontab的20個例子

linux crontab和windows task schedules非常的相似。crontab可以用來在系統中定期的執行任務。比如 寫了乙個爬蟲需要每天早上八點執行,就可以用到crontab 安裝的tomcat伺服器需要每天凌晨重啟一次,也可以使用到crontab。總之,幾乎所有的定時任務,我們...

fabric使用例項 發布web包的乙個例子

1 usr bin env python2 coding utf 8 3 新增中文注釋的編碼 4 fabfile.py 5from fabric.api import 67 env.user root 8 env.hosts 192.168.1.100 9 遠端伺服器的密碼,這個建議不要填寫,寧願在...