Python的字典操作

來源:互聯網
上載者:User

Python的字典操作

Python提供了多種應用於字典的操作。因為字典為容器,內建len函數可以將字典當作單一參數使用聽切返回字典對象中項目(鍵/值對)的數目。

字典會員

在Python2.2以及後面版本,D中的k運算子檢測是否對象k是字典D中的鍵。如果是返回True如果不是返回False。相似的,

索引一個字典

字典D中的值與相關的鍵k被索引表示為:D[k]。索引字典沒有的鍵會引起意外。例如:

d = { 'x':42, 'y':3.14, 'z':7 }
d['x']                           # 42
d['z']                           # 7
d['a']                           # raises exception

平整賦值到一個使用還不在字典中的鍵的索引(例如,D[newkey]=value)是一個可行的操作,該操作載入鍵和值到字典裡新的項目中。例如:

d = { 'x':42, 'y':3.14, 'z':7 }
d['a'] = 16                      # d is now {'x':42,'y':3.14,'z':7,'a':16}

del D[k]中的del語句,刪除字典中擁有鍵k的項目。如果k不是字典D中的鍵,del D[k]就會引起意外。

字典方法

字典對象提供了多種方法,如下表格所示。非變異方法返回結果,但不改變它們使用的對象。在下面列表中,D和D1代表任何字典對象,k代表D中任何有效鍵,x為任何對象。

方法

描述

Non-mutating methods

 

D.copy( )

Returns a (shallow) copy of the dictionary

D.has_key(k)

Returns True if k is a key in D, otherwise returns False

D.items( )

Returns a copy of the list of all items (key/value pairs) in D

D.keys( )

Returns a copy of the list of all keys in D

D.values( )

Returns a copy of the list of all values in D

D.iteritems( )

Returns an iterator on all items(key/value pairs) in D

D.iterkeys( )

Returns an iterator on all keys in D

D.itervalues( )

Returns an iterator on all values in D

D.get(k[,x])

Returns an iterator on all values in D

Mutating methods

 

D.clear( )

Removes all items from D

D.update(D1)

For each k in D1, sets D[k] equal to D1[k]

D.setdefault(k[,x])

Returns D[k] if k is a key in D; otherwise sets D[k] equal to x and returns x

D.popitem( )

Removes and returns an arbitrary item (key/value pair)

項目,鍵還有值方法以任意排列返回它們的列表結果。然而,如果不加幹預的呼叫字典中中任何方法,結果的順序一樣。iteritems,iterkeys, 以及itervalues方法,對於Python2.2是新的,它們返回相當於這些列表的迭代器。迭代器比列表消費更少記憶體,但是在當迭代一個迭代器時不允許修改字典。然而,迭代列表返回項目,鍵或值不會傳遞這種限制。直接迭代字典D就如同迭代於D.terkeys( )一樣。

popitem方法可以是用於毀滅性迭代到字典。項目和popitem都返回字典項目為鍵/值對,但使用popitem消耗更少記憶體,就如同它並不依賴單 獨的項目列表。如果當迴圈時可以摧毀字典,節約記憶體使得在重複巨大字典中可以使用慣用語。在Python2.2及以後版本,當迴圈是直接迭代字典(或 iterkeys或iteritems)也會消耗適度的記憶體,而且不會摧毀被迭代的的字典。

setdefault方法返回與get相同的結果,但如果k不是D的鍵,setdefault還會有綁定D[k]到x值的副作用。
#---------------------------------------------------------------------------------------------

a ={'a':'1','b':'2','c':'3'}

>>> print a.items()
[('a', '1'), ('c', '3'), ('b', '2')]
>>> print a.keys()
['a', 'c', 'b']

>>> print a.values()
['1', '3', '2']

>>> print a.has_key('b')
True

>>> del a['a']
>>> print a
{'c': '3', 'b': '2'}
>>> a['e']='4'
>>> print a
{'c': '3', 'b': '2', 'e': '4'}

>>> print a.get('b')
2

 

此方法在2.3的版本下不能使用,於是經過測試,hoxide給出新的方法,更簡單,而且2.3和2.4都可以用。
>;>;>; a = {'a': 1, 'b':2}
>;>;>; c = {'c':3}
>;>;>; a.update(c)
>;>;>; a
{'a': 1, 'c': 3, 'b': 2}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.