| 操作 |
文法 |
舉例 |
結果 |
| 建立字典 |
dict() 1.以關鍵字參數建立字典 2.以其他映射作為參數建立字典 |
1.d = dict(name=‘Gumby‘, age=42) d 2.items = [(‘name‘, ‘Gumby‘), (‘age‘, 42)] d = dict(items) d |
{‘age‘: 42, ‘name‘: ‘Gumby‘} {‘age‘: 42, ‘name‘: ‘Gumby‘} |
fromkeys() 1.給指定的鍵建立新的字典 2.用dict調用fromkeys 3.如果不想使用None作預設值,也可以自己提供預設值 |
1.{}.fromkeys([‘name‘, ‘age‘]) 2.dict.fromkeys([‘name‘, ‘age‘]) 3.dict.fromkeys([‘name‘,‘age‘], ‘(unknown)‘) |
{‘age‘: None, ‘name‘: None} {‘age‘: None, ‘name‘: None} {‘age‘: ‘(unknown)‘, ‘name‘: ‘(unknown)‘} |
| 清除字典 |
clear() 1.清除字典中的所有項 2.無傳回值(或傳回值為None) |
1.d = {‘name‘: ‘Gumby‘, ‘age‘: 42} value = d.clear() d 2. print value |
{} None |
| 淺複製 |
copy() 1.返回一個具有相同索引值對的新字典 2.當在副本中替換值的時候,原始字典不受影響 3.當在副本中修改某個值(不是替換)時,原始字典會改變 |
1.x = {‘username‘: ‘admin‘, ‘machines‘: [‘foo‘, ‘bar‘, ‘baz‘]} y = x.copy() y 2.y[‘username‘] = ‘mhl‘ y x 3.y[‘machines‘].remove(‘bar‘) y x |
{‘username‘: ‘admin‘, ‘machines‘: [‘foo‘, ‘bar‘, ‘baz‘]} {‘username‘: ‘mhl‘, ‘machines‘: [‘foo‘, ‘bar‘, ‘baz‘]} {‘username‘: ‘admin‘, ‘machines‘: [‘foo‘, ‘bar‘, ‘baz‘]} {‘username‘: ‘mhl‘, ‘machines‘: [‘foo‘, ‘baz‘]} {‘username‘: ‘admin‘, ‘machines‘: [‘foo‘, ‘baz‘]} |
| 深複製 |
deepcopy() 1.當在副本中修改某個值(不是替換)時,原始字典不受影響 |
from copy import deepcopy d = {‘names‘: [‘Alfred‘, ‘Bertrand‘]} deep = deepcopy(d) deep[‘names‘].append(‘Clive‘) deep d |
{‘names‘: [‘Alfred‘, ‘Bertrand‘, ‘Clive‘]} {‘names‘: [‘Alfred‘, ‘Bertrand‘]} |
| 訪問字典項/設定預設值 |
get() 1.更寬鬆的訪問字典項,訪問一個不存在的鍵時,不會報錯 2.自訂預設值 |
1.d = {} print d.get(‘name‘) 2.d.get(‘name‘, ‘N/A‘) |
None ‘N/A‘ |
setdefault() 1.更寬鬆的訪問字典項,訪問一個不存在的鍵時,不會報錯 2.自訂預設值 3.當鍵存在時,就返回相應的值 |
1.d = {} print d.setdefault(‘name‘) 2.d = {} d.setdefault(‘name‘, ‘N/A‘) 3.d = {‘name‘: ‘Gumby‘} d.setdefault(‘name‘, ‘N/A‘) |
None ‘N/A‘ ‘Gumby‘ |
| 檢查鍵 |
has_key() 1.d.has_key(key)相當於k in d |
d = {} d.has_key(‘name‘) d[‘name‘] = ‘Eric‘ d.has_key(‘name‘) |
False True |
| 迭代 |
鍵的迭代:keys()和iterkeys() 1.keys()將字典中的鍵以列表形式返回 2.iterkeys()返回鍵的迭代器 |
1.d = {‘title‘: ‘Python Web Site‘, ‘url‘: ‘http://www.python.org‘, ‘spam‘: 0} d.keys() 2.ik = d.iterkeys() ik list(ik) |
[‘url‘, ‘spam‘, ‘title‘] <dictionary-keyiterator object at 0x0000000002C1FA98> [‘url‘, ‘spam‘, ‘title‘] |
值的迭代:values()和itervalues() 1.values()將字典中的值以列表形式返回 2.itervalues()傳回值的迭代器 |
1.d = {‘title‘: ‘Python Web Site‘, ‘url‘: ‘http://www.python.org‘, ‘spam‘: 0} d.values() 2.iv = d.itervalues() iv list(iv) |
[‘http://www.python.org‘, 0, ‘Python Web Site‘] <dictionary-valueiterator object at 0x0000000002C1FAE8> [‘http://www.python.org‘, 0, ‘Python Web Site‘] |
索引值對的迭代:items()和iteritems() 1.items()將所有字典項以列表形式返回 2.iteritems()返回所有字典項的迭代器 |
1.d = {‘title‘: ‘Python Web Site‘, ‘url‘: ‘http://www.python.org‘, ‘spam‘: 0} d.items() 2.it = d.iteritems() it list(it) |
[(‘url‘, ‘http://www.python.org‘), (‘spam‘, 0), (‘title‘, ‘Python Web Site‘)] <dictionary-itemiterator object at 0x0000000002C1FB38> [(‘url‘, ‘http://www.python.org‘), (‘spam‘, 0), (‘title‘, ‘Python Web Site‘)] |
| 移除 |
pop() 1.獲得給定鍵的值,然後將索引值對從字典中移除 |
d = {‘x‘: 1, ‘y‘: 2| d.pop(‘x‘) d |
1 {‘y‘: 2} |
popitem() 1.移除隨機的項 |
d = {‘url‘: ‘http://www.python.org‘, ‘spam‘: 0, ‘title‘: ‘Python Web Site‘} d.popitem() d |
(‘url‘, ‘http://www.python.org‘) {‘spam‘: 0, ‘title‘: ‘Python Web Site‘} |
| 更新 |
update() 1.利用一個字典項更新另外一個字典 |
d = {‘title‘: ‘Python Web Site‘, ‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘Mar 14 22:09:15 MET 2008‘} x = {‘title‘: ‘Python Language Website‘} d.update(x) d |
{‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘Mar 14 22:09:15 MET 2008‘, ‘title‘: ‘Python Language Website‘} |