python 字典方法

来源:互联网 发布:sql insert 多行数据 编辑:程序博客网 时间:2024/06/07 21:58

1.clear  

清除字典中所有的项。原地操作,无返回值(或说返回值为None)。


>>> d = {}

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

>>> d['age'] = 42

>>> d

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

>>> returned_value = d.clear()

>>> d

{}

>>> print returned_value

None

#此方法会清除原始字典内容


2.copy

返回具有相同key-value的新字典,为浅复制(shallow 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']}

#替换不会改变原字典,修改会改变原字典

#避免这个问题,使用深复制(deep copy)

>>> from copy import deepcopy

>>> d = {}

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

>>> c = d.copy()

>>> e = deepcopy(d)

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

>>> c

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

>>> e

{'names': ['Alfred', 'Bertrand']} #深复制没有因为原字典的改变而改变

3.fromkeys

使用给定的key建立新字典,每个key默认对应的值为None。

>>> d_a = {} 
>>> d_a.fromkeys(['name', 'age']) 
{'age': None, 'name': None}

#可自定义None值为其他

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


4.get

宽松访问字典的key值,访问的key不存在时,返回None,可自定义None.

>>> d = {} 
>>> print d.get('name') 
None 
>>> print d.get('name','N/A') 
N/A 
>>>

5.has_key

检查字典中是否有给出的key,表达式d.has_key(k)等价于k in d。(3.0中不包括这个方法)

>>> d = {} 
>>> d.has_key('name') 
False 
>>> d['name'] = 'Eric' 
>>> d.has_key('name') 
True

6.items和iteritems
items方法将所有的字典项以列表的方式返回,列表中的项由(key,value)组成,返回项无特殊顺序。
>>> d= {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} 
>>> d.items() 
[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]
iteritems返回一个迭代对象而不是列表
>>> it = d.iteritems() 
>>> it 
<dictionary-itemiterator object at 0x020699F0> 
>>> list(it) #Convert the iterator to a list 
[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]


7.keys和iterkeys
keys方法将字典中的key以列表形式返回,而iterkeys则返回针对键的迭代器。
>>> d.keys() 
['url', 'spam', 'title']
>>> d.iterkeys() 
<dictionary-keyiterator object at 0x02075570> 
>>> list(d.iterkeys()) 
['url', 'spam', 'title']


8.pop
用来获得对应于给定key的value,然后将这个key-value从字典中移除。
>>> d = {'x': 1, 'y': 2}
>>> d.pop('x') 

>>> d 
{'y': 2}

9.popitem
类似于list.pop,list.pop会弹出列表最后一个元素。popitem弹出随机项,因为字典中无顺序概念。(不用获取key就可以移除项。)
>>> d 
{'url': 'http://www.python.org', 'spam': 0, 'title': 'Python Web Site'} 
>>> d.popitem() 
('url', 'http://www.python.org')
#字典是无序的,所以没有append方法。

10.setdefault
类似get方法,能够获得给定key的value,此外setdefault还能在自动重不含有给定key的情况下设定相应的key-value。
>>> d = {} 
>>> d.setdefault('name', 'N/A') 
'N/A' 
>>> d 
{'name': 'N/A'} 
>>> d['name'] = 'Gumby' 
>>> d.setdefault('name', 'N/A') 
'Gumby' 
>>> d 
{'name': 'Gumby'}
#当key-value不存在时,setdefault返回默认值并相应地更新字典。如果key存在,那么就返回与其对应的value,但不改变字典。默认值可选,默认返回None。

11.update
利用一个字典项更新另外一个字典:
>>> 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'}

12.values和itervalues
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。与返回值的列表不同的是,返回值的列表中可以包含重复的元素:
>>> d = {} 
>>> d[1] = 1 
>>> d[2] = 2 
>>> d[3] = 3 
>>> d[4] = 1 
>>> d.values() 
[1, 2, 3, 1]
>>> d.itervalues() 
<dictionary-valueiterator object at 0x02075660>
>>> list(d.itervalues()) 
[1, 2, 3, 1]

0 0
原创粉丝点击