clear 
 
 
 

   删除所有字典项 
 
 
 

   >>> d = {} 
 
 
 

   >>> d['name'] = 'Gumby' 
 
 
 

   >>> d['age'] = 42 
 
 
 

   >>> d 
 
 
 

   {'age': 42, 'name': 'Gumby'} 
 
 
 

   >>> d.clear() 
 
 
 

   >>> d 
 
 
 

   {} 
 
 
 

   下面是第一个场景: 
 
 
 

   >>> x = {} 
 
 
 

   >>> y = x 
 
 
 

   >>> x['key'] = 'value' 
 
 
 

   >>> y 
 
 
 

   {'key': 'value'} 
 
 
 

   >>> x = {} 这里只是将x关联到一个新的空间,并不修改原来的空间 
 
 
 

   >>> y 
 
 
 

   {'key': 'value'} 
 
 
 

   下面是第二个场景: 
 
 
 

   >>> x = {} 
 
 
 

   >>> y = x 
 
 
 

   >>> x['key'] = 'value' 
 
 
 

   >>> y 
 
 
 

   {'key': 'value'} 
 
 
 

   >>> x.clear()这里修改的是原来的空间 
 
 
 

   >>> y 
 
 
 

   {} 
 
 
 

     
 
 
 

   copy 
 
 
 

   返回一个与原字典相同的新字典 
 
 
 

   >>> x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']} 
 
 
 

   >>> y = x.copy() 
 
 
 

   >>> y['username'] = 'mlh' 
 
 
 

   >>> y['machines'].remove('bar') 
 
 
 

   >>> y 
 
 
 

   {'username': 'mlh', 'machines': ['foo', 'baz']} 
 
 
 

   >>> x 
 
 
 

   {'username': 'admin', 'machines': ['foo', 'baz']} 
 
 
 

   此方法的赋值为浅复制。替换副本中的值时(新值为新空间),原件不受影响。如果修改副本中的值(原地修改),原件也发生变化,因为原件指向的也是被修改的值。 
 
 
 

   为避免这种问题,一种办法是执行深复制,可使用copy中的deepcopy 
 
 
 

   >>> from copy import deepcopy 
 
 
 

   >>> d = {} 
 
 
 

   >>> d['names'] = ['Alfred', 'Bertrand'] 
 
 
 

   >>> c = d.copy() 
 
 
 

   >>> dc = deepcopy(d) 
 
 
 

   >>> d['names'].append('Clive') 
 
 
 

   >>> c 
 
 
 

   {'names': ['Alfred', 'Bertrand', 'Clive']} 
 
 
 

   >>> dc 
 
 
 

   {'names': ['Alfred', 'Bertrand']} 
 
 
 

     
 
 
 

   fromkeys 
 
 
 

   创建一个新字典,其中包含指定的键,每个键对应的值都是None 
 
 
 

   >>> {}.fromkeys(['name', 'age']) 
 
 
 

   {'age': None, 'name': None} 
 
 
 

   也可提供特定的值 
 
 
 

   >>> dict.fromkeys(['name', 'age'], '(unknown)') 
 
 
 

   {'age': '(unknown)', 'name': '(unknown)'} 
 
 
 

     
 
 
 

   get 
 
 
 

   如果访问了字典中没有的项,将引发错误,而get不会 
 
 
 

   >>> d = {} 
 
 
 

   >>> print(d['name']) 
 
 
 

   Traceback (most recent call last): 
 
 
 

   File "<stdin>", line 1, in ? 
 
 
 

   KeyError: 'name' 
 
 
 

   >>> print(d.get('name')) 
 
 
 

   None 
 
 
 

   在没有时也可以返回其它指定值 
 
 
 

   >>> d.get('name', 'N/A') 
 
 
 

   'N/A' 
 
 
 

   如果有要找的键,get与普通字典查找相同 
 
 
 

   >>> d['name'] = 'Eric' 
 
 
 

   >>> d.get('name') 
 
 
 

   'Eric' 
 
 
 

     
 
 
 

   items 
 
 
 

   返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定 
 
 
 

   >>> d = {'title': 'Python Web Site', 'url': ' 
  http://www.python.org', 'spam': 0} 
 
 
 

   >>> d.items() 
 
 
 

   dict_items([('url', ' 
  http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]) 
 
 
 

   返回值属于一种名为字典视图的特殊类型 
 
 
 

   还可确定其长度以及对其执行成员资格检查 
 
 
 

   >>> it = d.items() 
 
 
 

   >>> len(it) 
 
 
 

   3 
 
 
 

   >>> ('spam', 0) in it 
 
 
 

   True 
 
 
 

   视图的一个优点是不复制,它们始终是底层字典的反映,即便你修改了底层字典亦如此。 
 
 
 

   >>> d['spam'] = 1 
 
 
 

   >>> ('spam', 0) in it 
 
 
 

   False 
 
 
 

   >>> d['spam'] = 0 
 
 
 

   >>> ('spam', 0) in it 
 
 
 

   True 
 
 
 

   (永不复制,只是关联) 
 
 
 

   如果你想将字典项复制到列表中,可以这样: 
 
 
 

   >>> list(d.items()) 
 
 
 

   [('spam', 0), ('title', 'Python Web Site'), ('url', ' 
  http://www.python.org')] 
 
 
 

     
 
 
 

   keys 
 
 
 

   返回一个字典视图,包含字典中所有的键 
 
 
 

   >>> dict = {'Name': 'Runoob', 'Age': 7} 
 
 
 

   >>> dict.keys() 
 
 
 

   dict_keys(['Name', 'Age']) 
 
 
 

   >>> list(dict.keys()) # 转换为列表 
 
 
 

   ['Name', 'Age'] 
 
 
 

     
 
 
 

   pop 
 
 
 

   获取指定键的值并删除指定键值对 
 
 
 

   >>> d = {'x': 1, 'y': 2} 
 
 
 

   >>> d.pop('x') 
 
 
 

   1 
 
 
 

   >>> d 
 
 
 

   {'y': 2} 
 
 
 

     
 
 
 

   popitem 
 
 
 

   随机弹出一个字典项,因为字典项的顺序是不确定的 
 
 
 

     
 
 
 

   setdefault 
 
 
 

   >>> d = {} 
 
 
 

   >>> d.setdefault('name', 'N/A') 
 
 
 

   'N/A' 
 
 
 

   >>> d 
 
 
 

   {'name': 'N/A'} 
 
 
 

   >>> d['name'] = 'Gumby' 
 
 
 

   >>> d.setdefault('name', 'N/A') 
 
 
 

   'Gumby' 
 
 
 

   >>> d 
 
 
 

   {'name': 'Gumby'} 
 
 
 

   指定的键不存在时,返回指定值并更新字典。存在就返回其值,字典不变 
 
 
 

   如果没有指定值,默认为None 
 
 
 

   >>> d = {} 
 
 
 

   >>> print(d.setdefault('name')) 
 
 
 

   None 
 
 
 

   >>> d 
 
 
 

   {'name': None} 
 
 
 

     
 
 
 

   update 
 
 
 

   使用一个字典来更新另一个字典 
 
 
 

   >>> d = { 
 
 
 

   ... 'title': 'Python Web Site', 
 
 
 

   ... 'url': ' 
  http://www.python.org', 
 
 
 

   ... 'changed': 'Mar 14 22:09:15 MET 2016' 
 
 
 

   ... } 
 
 
 

   >>> x = {'title': 'Python Language Website'} 
 
 
 

   >>> d.update(x) 
 
 
 

   >>> d 
 
 
 

   {'url': ' 
  http://www.python.org', 'changed': 
 
 
 

   'Mar 14 22:09:15 MET 2016', 'title': 'Python Language Website'} 
 
 
 

     
 
 
 

   values 
 
 
 

   返回字典中的值组成的字典视图 
 
 
 

   >>> d = {} 
 
 
 

   >>> d[1] = 1 
 
 
 

   >>> d[2] = 2 
 
 
 

   >>> d[3] = 3 
 
 
 

   >>> d[4] = 1 
 
 
 

   >>> d.values() 
 
 
 

   dict_values([1, 2, 3, 1])