首頁 > 後端開發 > Python教學 > 詳解python中字典的幾個方法

詳解python中字典的幾個方法

高洛峰
發布: 2017-03-08 11:14:14
原創
2178 人瀏覽過

建立字典

>>> phonebook={'Alice':'2897','Alan':'0987','Jery':'6754'}
登入後複製

dict函數

>>> items=[('name','Gumby'),('age',42)]
>>> d=dict(items)
>>> d
{'age': 42, 'name': 'Gumby'}
>>> d['name']
'Gumby'
>>> d=dict(name='July',age=24)
>>> d
{'age': 24, 'name': 'July'}
登入後複製

基本的字典運算(大部分與序列類似)

len(d)傳回d中項(鍵-值對)的數量

d[k]傳回關聯到鍵k上的值

d[k]=v將值v關聯到k上

del d[ k]刪除鍵為k的項目

k in d檢查d中是否有含有鍵為k的項目

格式化字串

>>> phonebook
{'Jery': '6754', 'Alice': '2897', 'Alan': '0987'}
>>> "Alan's phone number is %(Alan)s." % phonebook
"Alan's phone number is 0987."
登入後複製

方法:

clear 清除字典中所有的項目

>>> d={}
>>> d['name']='Gumby'
>>> d['age']=42
>>> d
{'age': 42, 'name': 'Gumby'}
>>> d.clear()
>>> d
{}

>>> x={}
>>> y=x #x和y对应同一个字典
>>> 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={'name':'admin','machines':['foo','bar','bax']}
>>> y=x.copy()
>>> y['name']='yhk' #替换值,原字典不受影响
>>> y['machines'].remove('bar') #修改了某个值(原地修改不是替换),原字典会改变
>>> y
{'name': 'yhk', 'machines': ['foo', 'bax']}
>>> x
{'name': 'admin', 'machines': ['foo', 'bax']}
登入後複製

deepcopy 深複製

#
>>> from copy import deepcopy
>>> d={}
>>> d['name']=['Aly','Bob']
>>> c=d.copy()
>>> e=deepcopy(d)
>>> d['name'].append('Ageal')
>>> c
{'name': ['Aly', 'Bob', 'Ageal']}
>>> e
{'name': ['Aly', 'Bob']}
登入後複製

fromkeys 使用給定的鍵建立新的字典,每個鍵預設的對應的值為none

>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'],'(unknown)')
{'age': '(unknown)', 'name': '(unknown)'}
登入後複製

 get 存取字典項目

>>> d={}
>>> print d['name']

Traceback (most recent call last):
  File "<pyshell#60>", line 1, in <module>
    print d[&#39;name&#39;]
KeyError: &#39;name&#39;
>>> print d.get(&#39;name&#39;)
None
>>> d.get(&#39;name&#39;,&#39;N/A&#39;)
&#39;N/A&#39;
>>> d[&#39;name&#39;]=&#39;Eric&#39;
>>> d.get(&#39;name&#39;)
&#39;Eric&#39;
登入後複製

has_key 檢查字典中是否有給出的鍵( python3.0沒有這個函數)

>>> d={}
>>> d.has_key(&#39;name&#39;)
False
>>> d[&#39;name&#39;]=&#39;Eric&#39;
>>> d.has_key(&#39;name&#39;)
True
登入後複製

items和iteritems 

items將所有的字典項目以列表方式返回,這些列表項中的每一項都來自於(鍵,值)

iteritems傳回一個迭代器物件

>>> d={&#39;title&#39;:&#39;My Time!&#39;,&#39;url&#39;:&#39;http://www,python.org&#39;,&#39;spam&#39;:0}
>>> d.items()
[(&#39;url&#39;, &#39;http://www,python.org&#39;), (&#39;spam&#39;, 0), (&#39;title&#39;, &#39;My Time!&#39;)]
>>> s=d.iteritems()
>>> s
<dictionary-itemiterator object at 0x0000000003068728>
>>> list(s)
[(&#39;url&#39;, &#39;http://www,python.org&#39;), (&#39;spam&#39;, 0), (&#39;title&#39;, &#39;My Time!&#39;)]
登入後複製

keys和iterkeys keys將字典中的鍵以列表形式傳回 iterkeys傳回針對鍵的迭代器

pop 移除

>>> d={&#39;x&#39;:1,&#39;y&#39;:2}
>>> d.pop(&#39;x&#39;)
>>> d
{&#39;y&#39;: 2}
登入後複製

 popitem 移除隨機的項目

>>> d={&#39;x&#39;:1,&#39;y&#39;:2}
>>> d.popitem()
(&#39;y&#39;, 2)
>>> d
{&#39;x&#39;: 1}
登入後複製

setdefault 當鍵不存在時,傳回預設值並更新對應字典

>>> d={}
>>> d.setdefault(&#39;name&#39;,&#39;N/A&#39;)
&#39;N/A&#39;
>>> d
{&#39;name&#39;: &#39;N/A&#39;}
>>> d[&#39;name&#39;]=&#39;Gumby&#39;
>>> d.setdefault(&#39;name&#39;,&#39;N/A&#39;)
&#39;Gumby&#39;
>>> d
{&#39;name&#39;: &#39;Gumby&#39;}
登入後複製

update 利用一個字典項目更新另一個字典

>>> d={&#39;x&#39;:1,&#39;y&#39;:2,&#39;z&#39;:3}
>>> f={&#39;y&#39;:5}
>>> d.update(f)
>>> d
{&#39;y&#39;: 5, &#39;x&#39;: 1, &#39;z&#39;: 3}
登入後複製

values和itervalues  alues傳回字典中的值(itervalues傳回值的迭代器)

>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d.values()
[1, 2, 3]
登入後複製


以上是詳解python中字典的幾個方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板