Python字典(dictionary)基礎與16種操作 - 自學成功道

文章推薦指數: 80 %
投票人數:10人

Python字典也有這樣的對應方式,每個鍵(key)都相對應的值(value) ... 程式碼,製作字典讓電腦來查詢,電腦瞭解意思後,去執行你希望它幫你做的事。

Skiptocontent 最後更新時間:2021年9月1日 Python字典,給你的感覺是一個很複雜的資料結構嗎?這篇文章教你如何拆解字典內含的元素,讓你看到字典不再煩悶。

來到字典的這篇文章,代表你在建立自己Python知識大樓上,基礎又更穩固了。

隨著你學習Python的進度慢慢推進,一步一步的認識各種資料型態,從最單純的整數(integer),到字串(string)、串列(list),瞭解不同的資料型態的呈現方式、有什麼特性,以及如何操作。

認識字典(dictionary)這個資料型態前,我們先用字串來回顧一下,什麼是資料的呈現方式、特性、操作;如果你很熟悉了,可以往下滑到快速閱讀,點選你所需要的Python字典資訊。

回顧字串這個資料型態,它的呈現方式是兩端會有引號,像是這樣: 'goodjob!' 字串的特性是,它是不可變的資料型態。

字串操作上呢,你可以使用len()函式來取得字元數量,利用方法(Method)如split()、join()進行分拆及結合,當然還有許多各式各樣的操作。

看到這,如果你對字串的印象有些模糊,可以連結到《Python字串(string)基礎與20種常見操作》這篇文章,喚起你的記憶。

小結一下字串呈現方式、特性、操作: 呈現方式:兩端有引號特性:不可變的資料型態操作:len()函式,split()、join()等方法 簡單的利用字串回顧了資料型態的呈現方式、特性、操作是什麼後,進入正題,我們來看看字典(dictionary)是什麼? 快速閱讀 Python字典(dictionary)是什麼?呈現方式第一步-找出逗號第二步-找出冒號特性如何建立字典使用大括號{}建立字典使用dict()函式建立字典搭配鍵與值的序列,使用dict()函式建立字典鍵是字串時,利用變數與賦值概念建立字典使用zip()函式建立字典使用生成式(dictcomprehensions)建立字典字典的16種操作取得字典內的元素使用中括號[]與鍵(key)取得指定的值(value)使用get()方法(Method)取得指定的值(value)使用setdefault()方法取得指定的值,並把不存在的項目加入使用keys()方法取得所有的鍵(key)使用values()方法取得所有的值(value)使用items()方法取得所有的項目(item)檢查字典內的元素使用in成員運算子檢查使用==或!=比較運算子改變字典內的元素,使用[]與=增加字典的元素使用[]與=增加項目使用setdefault()方法增加項目使用update()方法增加項目刪除字典內的元素使用del陳述句刪除項目使用pop()方法刪除項目使用clear()方法刪除所有的項目,字典清空用len()函式計算字典中的項目數量Python書籍推薦 Python字典(dictionary)是什麼? 講到字典,相信大家都知道是什麼東西,可能你會聯想到國語字典、英文字典,甚至可能會想起當年你在學校查字典比賽拿到的獎品:一本字典。

當你有生詞、單字不懂,你可以透過紙本字典或是網路上的數位字典找出它的意思。

那麼,生活經驗中的字典,與Python字典一樣嗎? 概念是相似的,只是角色不同罷了。

生活中,你查字典是進行查詢的動作,有人編輯好字典讓你查到你需要的資訊;在Python程式語言裡,你編寫程式碼,製作字典讓電腦來查詢,電腦瞭解意思後,去執行你希望它幫你做的事。

 所以學習字典就是學會編寫出一個Python看得懂的字典,要讓Python看得懂,就需要瞭解Python字典語法(syntax),語法包括資料型態的呈現方式、特性及操作。

呈現方式 首先我們來看一下,字典長怎樣。

下方程式碼就是一個字典,兩端有大括號{}包覆,大括號內的項目使用逗號區隔,每個項目內都有冒號,形成相對應的查找功能。

{'Muffin':39,'Scone':25,'Biscuit':20} 學會字典是以大括號來表示,對你應該不是難事,比較難理解的可能是大括號內又是冒號,又是逗號,還有引號的表示方式,讓你覺得字典就像是大括號內放了一團難解的毛線球,無從理解起。

如果你有這個問題,馬上來看看如何找出毛線球的線頭,兩個步驟個解析字典這個資料型態。

第一步-找出逗號 與串列一樣,字典的每個項目也都是用逗號作區隔。

{'Muffin':39,'Scone':25,'Biscuit':20} 這個字典有三個項目'Muffin':39、'Scone':25、'Biscuit':20。

第二步-找出冒號 看懂每個項目分別是什麼後,再來請在項目內找到冒號:,冒號是字典的特色,利用冒號來帶出相對應的指引,以'Muffin':39這個項目來說,'Muffin’對應到39,以此類推,'Scone'對應25、'Biscuit'對應20。

'Muffin'以引號來表示,代表它是字串(string);39則是整數(integer),如果以'39'表示就代表字串,使用整數或字串有什麼差別呢?有喔!整數可以進行數學的加、減、乘、除運算,字串不行。

這樣的對應方式,就跟你平常在使用字典很像。

舉例來說,假如你不懂Muffin這個英文單字是什麼意思,查字典會查到Muffin所對應的意思是鬆餅,雖然很多麵包店直接把Muffin音譯為馬芬,但它本質上就是鬆餅。

走過找出逗點,尋找冒號的2個步驟後,下方這個段字典的程式碼是不是好懂很多了呢?  desserts={'Muffin':39,'Scone':25,'Biscuit':20} 如果再發揮一點想像力,把每個項目內對應的數字當成價格,是不是就形成了一個價目表,Muffin39元,Scone25元,Biscuit20元,你想吃哪一個呢? 看懂字典的呈現方式後,我們來瞭解一下,大家都怎麼稱呼大括號內所包含東西,並以點心(desserts)的例子作說明。

desserts={'Muffin':39,'Scone':25,'Biscuit':20} 字典的鍵與值 項目(item)以逗號區隔開的程式碼。

'Muffin':39是一個項目(item),'Scone':25也是一個項目,'Biscuit':20當然也是一個項目。

鍵(key)每個項目內,冒號左邊的為鍵(key),必須為不可變的資料型態,通常使用字串。

'Muffin'就是'Muffin':39這個項目中的鍵(key),其他兩個項目的鍵你知道是什麼嗎?是'Scone'及'Biscuit'。

值(value)每個項目內,冒號右邊的為值(value),可變或不可變的資料型態都可以。

'Muffin':39這個項目的值(value)是39,'Scone'及'Biscuit'這兩個鍵(key)對應的值(value)是25及20。

對項目(item)、鍵(key)、值(value)的英文單字有個印象,會對你之後學習操作字典有幫助。

就好像你在學習看地圖,北方的英文單字是North,地圖的上的N就代表北方,取North的第一個字母代表,瞭解英文單字可以幫助你理解方位的表示,也可以幫助你理解程式語言。

認識Python字典的外表後,接著來看看它的內涵吧;Python世界裡,面對各種資料型態,你需要看重的內涵是它是否可變。

特性 字典有兩個重要的特性: 可變的資料型態沒有順序性 我們逐一來探討這兩個特性。

首先,字典屬於可變(mutable)的資料型態,可變的意思是你可以透過各類操作,直接改變字典內的資料。

其他可變的資料型態包括串列(list)、集合(set)。

再來,有順序性是什麼意思呢?就是指資料的排序不會改變,例如字串、串列都是有順序性的資料型態,你可以數字來指出各個字元或值所在的位置。

例如'Muffin'這個字串,index0的位置是字元M。

>>>'Muffin'[0] M 但字典是沒有順序性的,所以你無法使用index來查找字典內的資料。

剛開始學習Python,你可能會對資料型態可變與否,是否有順序性覺得相當混亂,這是很正常的。

學習新的東西,會混亂代表你很努力地在學習新的知識(腦袋空空會混亂嗎?應該是一片寧靜,不過如果思緒都釐清了,會恢復一片祥和的)。

腦袋還在消化吸收新知,就像在電腦安裝新軟體,給它點時間,它會安裝好的,如果你硬是要同時安裝100個軟體,當機也是很正常的。

除此以外,你不需要逼迫自己要立刻把各種資料型態的特性背起來,以為這樣才可以學好程式語言。

真的不需要,在你練習打程式碼的過程中你會記得的,因為你會發現原來可不可變有這樣的用處,有沒有順序性會導致如此的結果。

除了學習Python的知識外,多練習編寫程式碼,從各種練習中去釐清你所學到的資料型態、語法,你會有更深刻的體悟,也會很有成就感,當程式碼順利運作時,是件很開心的事。

回到主題,字典的重要特性是可變的、無順序性。

瞭解字典的外表與內涵後,接下來開始學習操作字典囉。

當然,操作前總是要先建立字典,有了字典才能操作,先來看看怎麼建立字典吧。

如何建立字典 建立各種資料型態的物件,不外乎使用應有的符號、或是用函式來建立,這裡我們介紹3種建立Python字典的方式,分別是: 使用大括號{}建立字典使用dict()函式建立字典使用生成式建立字典 有些建立字典的方式可能有點複雜,剛開始看不懂沒關係,你可以只學會一種建立字典的方式,依然可以繼續學習如何操作字典。

其他的方式有個印象,知道這樣子的程式碼是會變出字典就可以了。

使用大括號{}建立字典 直接使用大括號{}建立字典是最直觀、也最簡單的建立字典方式。

你可以只會這個建立字典的方式,然後跳到字典操作的段落繼續學習。

這個方式是這樣的,大括號內的項目以逗號隔開。

項目內的鍵與值以冒號作為相對應的表示,例如前面所舉的desserts字典的例子。

desserts={'Muffin':39,'Scone':25,'Biscuit':20} 另外,最簡單的字典是空的: empty_dictionary={} 有個跟字典很相像資料型態:集合(set),集合也是使用大括號包覆在元素的兩端,不同的是裡頭沒有冒號,只有逗號區隔開每個項目。

>>>a_set={1,2,3} 空集合怎麼表示呢? set() set()就是空集合,而{}是空字典。

使用dict()函式建立字典 搭配鍵與值的序列,使用dict()函式建立字典 「鍵與值的序列」聽起來有點拗口,再說明的白話一點就是兩兩成對的序列,可以搭配dict()函式來建立字典,dict是取字典(dictionary)的英文前四個字來表示。

下方afternoon_tea就是一個「鍵與值的序列」 >>>afternoon_tea=[['Muffin',39],['Scone',25],['Biscuit',20]] afternoon_tea串列內的項目還是串列,內層的串列我們就稱它為子串列,每個子串列都兩兩成對。

搭配dict()函式時,Python會把子串列中的首個項目當成鍵(key),另一個則當成值(value)。

>>>dict(afternoon_tea) 執行程式碼後,得到的字典像這樣: {'Muffin':39,'Scone':25,'Biscuit':20} 「鍵與值的序列」也可以是tuple,afternoon_tea的例子中,你可以把串列替換為tuple,一樣可以建立字典。

除了看起來很明顯就是兩兩成對的序列外,雙字元的字串也可視為「鍵與值的序列」。

>>>number=('a1','b2','c3','d4') >>>dict(number) {'a':'1','b':'2','c':'3','d':'4'} 字串中的首個字元,會被Python視為鍵,另一個字元視為值。

鍵是字串時,利用變數與賦值概念建立字典 在介紹字典是什麼的段落,我們有提到鍵(key)必須是不可變的資料型態,如果你使用下述的方法建立字典,鍵的資料型態會再限縮為字串(string)。

>>>dict(Muffin=39,Scone=25,Biscuit=20) 建立的字典會是這樣: {'Muffin':39,'Scone':25,'Biscuit':20} 這個方法使用等號表示鍵所對應的值。

要注意的是,鍵不可以是保留字,而且在dict()函式內,鍵以變數方式表示,也就是說,鍵的位置你不是填入字串,而是一個變數。

再看一眼程式碼中的Muffin,是以變數呈現,不是字串,因為兩端沒有引號,你注意到了嗎? 待程式碼運作後,鍵的位置才會是字串。

使用zip()函式建立字典 zip()函式可以同時迭代多個序列,序列可以是串列、tuple,返回的值是一個zip物件。

要利用dict()與zip()函式建立字典,你會需要有兩個序列,把這兩個序列做為zip()的引數,產生字典。

下 方的例子就是以這樣的方式建立字典: >>>name=['Muffin','Scone','Biscuit'] >>>price=[39,25,20] >>>dict(zip(name,price)) 執行程式碼結果如下: {'Muffin':39,'Scone':25,'Biscuit':20} 使用生成式(dictcomprehensions)建立字典 字典生成式的英文是dictcomprehensions,想使用這個方式建立字典,你需要先對for迴圈有認識,對變數也要有一定的熟悉度。

如果你對for迴圈不瞭解,你可以參考《 Pythonfor迴圈(loop)的基本認識與7種操作》這篇文章;關於變數的觀念,《Python觀念,從=開始》文章的「變數是一個名稱」段落可以幫助你。

利用生成式建立字典你會需要3個工具: 大括號{}冒號 :變數for迴圈 字典生成式: {代表鍵的變數:代表值的變數for可迭代物} 字典生成式的公式看起來相當的抽象,直接看下方的例子來理解吧。

(**是平方的意思,x**2就代表x2) >>>{x:x**2forxinrange(1,4} {1:1,2:4,3:9} 如果你對字典生成式有興趣,想瞭解更詳細的介紹,你可以參考Python的官方文件。

字典生成式-Python官方文件 字典的16種操作 介紹各種操作前,先釐清一下,本文中我們把字典內的東西稱呼為元素,因為項目(item)、鍵(key)、值(value)在字典中都有所指,避免混淆故把放在字典裡的東西以元素表示。

讓我們來看看如何對字典,進行元素提取、增加、改變、刪除及計算項目數量的操作吧! 取得字典內的元素 買了一本字典、或打開字典網站,你的目的就是要查找資料。

當你建立了字典後,如何取得字典內所含括的資料呢? 接下來分享6個取得字典元素的操作給你知道: 使用中括號[]與鍵(key)取得指定的值(value) 先來回顧一下中括號[]與其他資料型態的搭配,中括號如果搭配字串、串列或tuple使用,可以取得指定位置的字元或項目。

舉例來說,建立一個名為a的串列,串列內包含了三個a開頭的疏果單字,分別是almond(杏仁)、apple(蘋果)、avocado(酪梨),如果你想取得位置0的水果,你可以這麼做: >>>a=['almond','apple','avocado'] >>>print(a[0]) 執行程式碼,就得到第0個位置的疏果是almond。

almond 由於字串、串列、tuple都序列性的資料型態,所以可以使用index來取得字元或項目,換言之你可以很明確地告訴Python你要的東西所在的位置,序號為何,給Python一個數值,它就會回傳你要的字元或項目給你。

然而字典是沒有順序的資料結構,你沒有辦法指出第0個位置、第1個位置是什麼。

但是字典有個很強大的功能,就是每個項目(item)都是鍵(key)與值(value)的配對,每個鍵(key)都有對應的值(value),這讓你找東西就更容易了,你不需要知道你需要的東西在哪個位置,只要記得他的鍵(key)是什麼,Python就可以回傳對應的值(value)給你。

馬上來看個例子,這次我們來做一個冰箱(fridge)裡放各種疏果數量的字典。

>>>fridge={'almond':5,'apple':2,'avocado':10} 建立這個字典的人大概很愛吃酪梨(avocado),冰箱裡放了10個酪梨,三不五時就要檢查冰箱裡還有幾個酪梨,透過字典他可以很快查詢到冰箱還有幾個酪梨,只需在中括號內打上’avocado’這個字串就可以知道冰箱還剩幾個酪梨了。

>>>fridge['avocado'] 10 使用get()方法(Method)取得指定的值(value) get()方法除了可以取得鍵(key)所對應的值(value),它還可以在字典不存在這個鍵(key)的時候,可以回傳備用的值。

字典.get(鍵,備用的值) 我們來舉個例子,情境是這樣的,你要去採買,用字典列出了你要採買的東西還有數量,東西的名稱你將它設為鍵(key),數量設為值(value)。

下方的to_buy字典,你放了兩個項目,代表你要買3個蘋果(apple)、5包杏仁(almond)。

>>>to_buy={'apple':3,'almond':5} 出門採購前,你想確認採買的數量,而且你其實需要採購酪梨(avocado),你不清楚有沒有把酪梨的採購數量放入to_buy字典,假如字典有採買的數量,你就按照字典的數量採購,沒有的話,你要買10個酪梨。

>>>to_buy.get('avocado',10) 10 >>>to_buy.get('apple') 3 >>>to_buy.get('almond') 5 >>>to_buy {'apple':3,'almond':5} 使用get()方法可以幫你取得對應的值,如果項目存在可以返回備用值,字典的項目不會被改變。

get()方法要點: 當鍵存在時回傳對應的值,即便你在第2個參數打上備用值,依然會回傳字典內原有的對應值。

備用值只有在項目不存在時才會啟用。

當鍵不存在時回傳get()第2個參數所列的備用值。

使用setdefault()方法取得指定的值,並把不存在的項目加入 介紹setdefault()方法前,我們先瞭解一下字面的英文意思。

你可以把setdefault看成兩個單字,set與default,在這裡,set的意思是設置,default是預設、默認,setdefault就是默認的設置、預設的設置之意。

看懂英文的意思後,我們來看看如何使用setdefault()方法,他的功能與get()方法有點像,不同點在於,當你指定的鍵與值不在字典裡,setdefault()可以幫你加進字典中,setdefault()具有取得值及增加項目的功用。

一樣使用剛剛建立的to_buy字典來說明,這次用setdefault()方法來取得蘋果與酪梨數量。

>>>to_buy={'apple':3,'almond':5} >>>to_buy.setdefault('apple',1) 3 >>>to_buy.setdefault('acavodo',10) 10 >>>to_buy {'apple':3,'almond':5,'acavodo':10} 你可以從上方的程式碼發現,執行後回傳蘋果的數量3,酪梨的採買數量10,因為字典裡已經寫好要買3個蘋果,所以備用的數量1沒有被接納,酪梨則因為不存在字典中,所以備用的值10被接納了,而且'acavodo':10成功加入to_buy字典中。

使用keys()方法取得所有的鍵(key) 接下來要介紹的三個方式其實都是相似的概念,使用keys()、values()、items()來取得所有的鍵、值、項目。

有個小細節要注意,這三個方法內的英文字母都是以複數呈現,記得都要加上s喔。

再把前面的下午茶afternoon_tea字典再拿來舉例,使用keys()來取得字典中的所有鍵。

>>>afternoon_tea={'Muffin':39,'Scone':25,'Biscuit':20} >>>afternoon_tea.keys() 執行程式碼回傳: dict_keys(['Muffin','Scone','Biscuit']) 你有發現回傳的東西前面有dict_keys嗎?這代表它是dict_keys資料型態,如果你希望回傳串列,使用list()函式就可以了。

>>>list(afternoon_tea.keys()) ['Muffin','Scone','Biscuit'] 使用values()方法取得所有的值(value) >>>list(afternoon_tea.values()) [39,25,20] 使用items()方法取得所有的項目(item) 取得所有的項目,並回傳串列這個資料型態 >>>list(afternoon_tea.items()) [('Muffin',39),('Scone',25),('Biscuit',20)] keys()、values()、items()這三個方法很常與for迴圈結合使用,你可以參考《Pythonfor迴圈(loop)的基本認識與7種操作》這篇文章「迭代字典(dictionary)」段落,瞭解它們是怎麼合作的。

檢查字典內的元素 使用in成員運算子檢查 跟檢查串列(list)中是否存在特定的項目一樣,可以使用in運算子,字典中如果有你要找的鍵就會回傳True,沒有就是False。

>>>'Muffin'inafternoon_tea True 以此類推,如果你使用notin來檢查,Python就會幫你檢查,指定的元素是否不存在字典中。

>>>'Scone'notinafternoon_tea False Scone有在字典中,所以回傳False。

使用==或!=比較運算子 如果你有兩個字典,你想檢查它們所擁有的元素一不一樣,你可使用比較運算子==或!=來檢查。

>>>this={'a':1,'b':2,'c':3} >>>here={'a':1,'c':3,'b':2} >>>this==here True 看到上方的程式碼執行後返回True,就代表兩個字典內的元素是一樣的囉,名叫this與here的這兩個字典裡頭的鍵與值是相同的。

因為Python字典不是序列型的資料型態,所以只要項目相同,順序不同沒有關係。

而如果你使用!=來檢查,則會回傳False,一樣內容的字典,你問Python它們內含的項目是否不一樣,Python當然會答你:錯,False。

>>>this={'a':1,'b':2,'c':3} >>>here={'a':1,'c':3,'b':2} >>>this!=here False 須要留心的是,雖然兩個字典內含的項目一樣,但你可以說this跟here是同一個物件嗎?不行喔。

讓我們有請is運算子來評斷,is這個運算子可以判別this與here字典是不是同一個物件,如果是同一個物件會回傳True,不是的話會回傳False。

>>>thisishere False 經過is運算子的決斷,這兩個字典不是同一個物件,但兩個字典所含的項目都相同。

改變字典內的元素,使用[]與= 直接進入情境來說明,假設你是咖啡廳老闆,因為原物料上漲,你要把Muffin的價格調高到49元,你可以用賦值的方式,直接把新的價錢賦予給Muffin。

原本的下午茶字典如下: >>>afternoon_tea={'Muffin':39,'Scone':25,'Biscuit':20} 為了調整價格,你需要把’Muffin’所對應的值改變為49。

>>>afternoon_tea['Muffin']=49 >>>afternoon_tea 執行程式碼,看看是不是把Muffin價格改成49了。

{'Muffin':49,'Scone':25,'Biscuit':20,'icecream':9} 成功把Muffin價格改成49。

使用=這個賦值符號,把你要改變的值賦予到該指定的鍵上,值就被你改變囉。

增加字典的元素 使用[]與=增加項目 延續前面改變Muffin價格的方式,如果你想增加可頌(croissant)這個品項,定價38元,你可以這樣做: >>>afternoon_tea['croissant']=38 >>>afternoon_tea 執行程式碼驗證看看: {'Muffin':49,'Scone':25,'Biscuit':20,'croissant':38} 可頌(croissant)直接加到字典裡囉! 使用[]及=對字典進行變更或新增,取決於字典內是否原本就有那個項目,如果有就會變更值,沒有的話便新增項目。

使用setdefault()方法增加項目 setdefault()方法除了可以檢查字典內是不是有對應的值,當字典中不存在指定的鍵與值時,便可以增加項目進字典中。

同樣以afternoon_tea這個字典來說明: >>>afternoon_tea={'Muffin':49,'Scone':25,'Biscuit':20} >>>afternoon_tea.setdefault('croissant',38) 執行程式碼,會回傳: 38 看到setdefault()第二個引數38回傳出來,就表示你成功加入’croissant’:38這個項目了。

輸入afternoon_tea來驗證看看吧: >>>afternoon_tea 執行程式碼回傳: {'Muffin':49,'Scone':25,'Biscuit':20,'croissant':38} 使用update()方法增加項目 update的英文意思是更新,Python中的update()可將另一個字典更新到你的字典中。

從例子來看如何使用: 因為國內旅遊興盛,你的咖啡廳生意大好,但常被顧客反應餐點太少,所以你打算一次新增三個新甜點,回應顧客的需求。

你為新甜點做出了一個名為new_desserts的字典,新菜單有鬆餅(waffle)、可麗餅(crepe)、馬卡龍(macaron)。

>>>new_desserts={'waffle':180,'crepe':160,'macaron':200} 接著使用update()方法,將new_desserts字典更新到afternoon_tea字典中。

>>>afternoon_tea.update(new_desserts) >>>afternoon_tea 執行程式碼,來看看afternoon_tea是不是加上了新菜單: {'Muffin':49,'Scone':25,'Biscuit':20,'croissant':38,'waffle':180,'crepe':160,'macaron':200} 成功更新菜單了,昂貴的三個甜點加入銷售! 假如new_desserts字典中有重複的項目,new_desserts內的元素會更新進去afternoon_tea中。

>>>afternoon_tea={'Muffin':49,'Scone':25,'Biscuit':20,'croissant':38} >>>new_desserts={'waffle':180,'crepe':160,'macaron':200,'Scone':999999} >>>afternoon_tea.update(new_desserts) >>>afternoon_tea 執行程式碼,看看重複的'Scone',在更新後的字典中會是什麼狀況: {'Muffin':49,'Scone':999999,'Biscuit':20,'croissant':38,'waffle':180,'crepe':160,'macaron':200} 你的員工不小心把標示天價的司康(Scone)也加到new_desserts字典中,afternoon_tea一更新你才發現,哇~司康(Scone)標價變成了天價,要999,999元。

看到這你有沒有發現一件事,其實update()方法也含有更動字典的功能。

刪除字典內的元素 使用del陳述句刪除項目 del陳述句可以刪除字典中的項目,搭配指定的鍵,你可以精準執行刪除。

再回到咖啡店的情境,你必須馬上把司康(Scone)從afternoon_tea字典中刪除,不然就要被爆料是超級黑店了,你不想拿到一堆一星評價啊。

馬上使用del陳述句,刪掉Scone這個項目: >>>delafternoon_tea['Scone'] >>>afternoon_tea 執行程式碼,太好了,司康已經刪除。

{'Muffin':49,'Biscuit':20,'croissant':38,'waffle':180,'crepe':160,'macaron':200} 使用del陳述句,你只需要輸入del,接著打上afternoon_tea['Scone']就可以了。

使用pop()方法刪除項目 除了用del陳述句來刪除項目,你還可以使用pop()方法刪除項目,這個方法還會回傳刪除的項目中,所對應的值給你看。

時空倒轉,回到司康還沒刪除的時間點,你決定使用pop()刪除項目: >>>afternoon_tea.pop('Scone') 執行程式碼,Python會回傳鍵'Scone'所對應的值999999。

999999 確認一下afternoon_tea字典是否已經刪除司康與999999那個項目: >>>afternoon_tea 執行程式碼,刪除成功! {'Muffin':49,'Biscuit':20,'croissant':38,'waffle':180,'crepe':160,'macaron':200} 使用clear()方法刪除所有的項目,字典清空 如果你覺得你建立的字典讓你心煩意亂,你可以使用clear()方法把全部的項目刪除,留下一個空字典。

afternoon_tea字典讓你看了心煩,你決定打掉重做。

>>>afternoon_tea.clear() >>>afternoon_tea {} 只剩一個空字典了。

用len()函式計算字典中的項目數量 len()函式可以用來取得Python字典項目的數量,讓你算算你的咖啡廳總共有幾種餐點。

在你刪除afternoon_tea字典前,先使用len()函式,看看刪掉全部後,要再重新做出幾個項目: >>>afternoon_tea={'Muffin':49,'Biscuit':20,'croissant':38,'waffle':180,'crepe':160,'macaron':200} >>>len(afternoon_tea) 執行程式碼後: 6 總共有6個餐點,好像不會太多,所以你就用clear()全刪了。

Python書籍推薦 本文介紹了Python字典的基礎知識,並告訴你如何建立字典,建立好字典後可以怎麼操作。

是不是迫不急待想練習Python字典的操作呢?如果無從著手,推薦你使用《Python自動化的樂趣(第2版)》這本書來練習,書中會教你利用Python字典做出一個井字遊戲,還會設定一個遊戲的情境,讓你用字典練習列出你的遊戲背包裡有多少東西,並且計算出總數。

如果你對於巢狀字典的概念很混亂,你可以閱讀《Python程式設計的樂趣(第2版)》,這本書將向你展示字典中的串列,串列中的字典,還有字典中的字典,也會舉for迴圈的例子。

延伸閱讀: 5本Python書推薦,強化你的程式語言觀念 12個入門Python線上課程:讓你快速學會寫程式 學Python可以做什麼:9個Python應用報你知 Python觀念,從=開始 Pythonfor迴圈(loop)的基本認識與7種操作 Pythonif陳述句的基礎與操作 Python字串基礎與20種常見操作 Python串列(list)基礎與23個常用操作 Python有了串列(list),為何還要有元組(tuple)? Python正規表示式:不一定要會,但會了超省力 文章導覽 ←Previous文章Next文章→ LeaveaCommentCancelReply發佈留言必須填寫的電子郵件地址不會公開。

必填欄位標示為*Typehere..Name* Email* Website 在瀏覽器中儲存顯示名稱、電子郵件地址及個人網站網址,以供下次發佈留言時使用。

搜尋站內文章 Searchfor: 近期文章 Python基礎觀念教學課程,一步一步帶你理解程式碼怎麼運作 總是學不會?1堂教你如何學習的課程,讓你不再跟腦袋作對 CSS繼承(inheritance):1個可能被你忽略的重要觀念 CSSTransition屬性的4個操作 2個要點了解CSS圓角屬性border-radius操作 課程推薦 好書推薦成功,從聚焦一件事開始 架站主機推薦



請為這篇文章評分?