Dictionary資料型態的建立
Dictionary相對於Perl的Hash資料型態,不像list或tuple型態必需用 integer當作index,dictionary是使用名稱來做index。
在Python中宣告dictionary資料型態的方法很簡單。由下面的但子可以看到,dictionary資料型態用 { }包覆,其中,每一個index和value pair用逗號區隔開來;而index和value之間則用 冒號 區隔
>>> x = {'one':1,'two':2}
>>> x
{'one': 1, 'two': 2}
除此之外,也可以使用dict()這個function來定義,用法如下。dict()這個function的參數可以是其它的dictionary或sequence(如list或tuple)
>>> x = dict([('one',1),('two',2)])
>>> x
{'one': 1, 'two': 2}
下面為另一種寫法,注意此寫法與上一個例子的差異! 在這個寫法中,one和two等keyword不需用引號括起來;而上面的寫法中,one和two這兩個keyword就必需用引號括起來
>>> x=dict(one=1,two=2)
>>> x
{'one': 1, 'two': 2}
Dictonary資料型態的方法
與sequence資料型態一樣,dictionary也有下列幾種基本的方法
- len(dic):回傳dic這個dictionary有多少的key-value pair
- dic(k):回傳k這個key所指向的value
- del dic(k):刪除以k做為key的這組
- k in dic:檢視dic中,有沒有k這個key
除了上述方法之外,dictionary還有下列專屬的方法
clear:
clear可以把dictionary中的東西清空。如
>>> dic
{'two': 4, 'one': 2}>>> dic.clear()
>>> dic
{}
copy:
Copy可以複製dictionary的內容。如
>>> dic
{'two': 2, 'one': 1}>>> dic2 = dic.copy()
>>> dic2
{'two': 2, 'one': 1}
get:
get這個方法可以用key來找尋相對的value,與 dic['key']這個取值方式的差別在於,當key值不存在於dic這個dictionary時,dic['key']這種取值方式會回傳exception。
>>> dic['key']
Traceback (most recent call last):
File "<pyshell#104>", line 1, in <module>
dic['key']
KeyError: 'key'
若用get這個方法取值,當key值不存在時,不會出現exception
>>> dic.get('key')
>>>
若要定義key值不存在時,要回傳何預設值,可用
>>> dic.get('key','N/A')
'N/A'
items:
這個方法可以將dictionary中的所有元素以 list的方式回傳,回傳的元素並不會遵照固定的順序
>>> dic.items()
[('two', 2), ('one', 1)]
iteritems:
和items一樣,也是回傳dictionary中的元素。不同的地方在於,它是以一個 iterator 物件的方式回傳。接著可以在迴圈中,用此物件將元素一一列出
>>> it = dic.iteritems()
>>> it
<dictionary-itemiterator object at 0x00DC0500>
>>> list(it)
[('two', 2), ('one', 1)]
keys及 iterkeys:
keys會回傳dictionary的所有key值;iterkeys則是回傳一個iterator物件,可由該物件取得key值
popitem:
將dictionary中的元素移出,類似於list的pop功能。不過因為dictionary沒有順序觀念,所以移出的順序不固定
>>> dic
{'three': 3, 'two': 2, 'one': 1}
>>> dic.popitem()
('three', 3)
>>> dic
{'two': 2, 'one': 1}
values及itervalues:
與keys及iterkeys功能相似,不過它回傳的是dictionary的value
沒有留言:
張貼留言