python字典方法

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')
1
>>> 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值