字典

dict函数
items = [('name', 'blue'), ('age', 42)]
d = dict(items)
d
{'age': 42, 'name': 'blue'}
d =dict(name='blue', age=42)
d
{'age': 42, 'name': 'blue'}

len(d)返回d中项(键-值对)的数量
d[k]返回关联到键k上的值
d[k] = v 将值v关联到键k上
del d[k]删除键为k的项
k in d 检查d中是否有含有键为k的项(注意此方法只能检查key,不能检查value)
字典的格式化字符串
>>> phonebook  ={'green':'9120', 'blue': '2301', 'red': '3374'}
>>> "red's phone number is %(red)s" % phonebook
"red's phone number is 3374"
字典方法
clear 方法清除字典中的所有项,无返回值(或者说返回值为None)
>>> d = {}
>>> d['name'] = 'green'
>>> d['age'] = 42
>>> d
{'age': 42, 'name': 'green'}
>>> returned_value = d.clear()
>>> d
{}
>>> print  returned_value
None

copy方法返回一个具有相同键-值对的新字典(这个方法是浅复制)
>>> x = {'username': 'admin', 'machines':['foo', 'ban']}
>>> y = x.copy()
>>> y['username'] = 'mlh'
>>> y['machines'].remove('ban')
>>> y
{'username': 'mlh', 'machines': ['foo']}
>>> x
{'username': 'admin', 'machines': ['foo']}

>>> from copy import deepcopy  #深复制
>>> d = {}
>>> d['names'] = ['green', 'blue']
>>> c = d.copy()
>>> dc = deepcopy(d)
>>> d['names'].append('clive')
>>> c
{'names': ['green', 'blue', 'clive']}
>>> d
{'names': ['green', 'blue', 'clive']}
>>> dc
{'names': ['green', 'blue']}
>>> 
fromkeys方法使用给定的键建立新的字典,每个键的默认值为None
>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> d
{'names': ['green', 'blue', 'clive']}
>>> d.fromkeys(['name', 'age'])
{'age': None, 'name': None}
>>> d.fromkeys(['name','age'], '(unknown)')
{'age': '(unknown)', 'name': '(unknown)'}
>>> d
{'names': ['green', 'blue', 'clive']}
get方法是一个更宽松的访问 字典项的方法,一般来说访问字典里不存在的键时会报错
>>> d = {}
>>> print d['name']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'name'
>>> print d.get('name')    #使用get时没有任何异常,而得到了None值,还可以自定义默认值,替换None
None
>>> d.get('name','N/A')
'N/A'
>>> d['name'] = 'blue'  # 如果键存在,get用起来就像普通的字典查询一样
>>> d.get('name')
'blue'
>>> 
has_key方法可以检查字典中是否含有给出的键。
>>> d = {}
>>> d.has_key('name')
False
>>> d['name'] = 'blue'
>>> d.has_key('name')
True
items和iteritems
item方法将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)。但是
项返回时并没有特殊的顺序。
items 和iteritems
items方法是将所有的字典项一列表方式返回这些列表项中的每一项都来自于(键,值)。
但是项在返回时并没有特殊的顺序。
>>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'span': 0}
>>> d.items()
[('url', 'http://www.python.org'), ('span', 0), ('title', 'Python Web Site')]
iteritems方法的作用大致相同,但是返回结果是一个生成器对象而不是一个列表:
>>> d.iteritems()
<dictionary-itemiterator object at 0x7f4e72000470>
>>> it = d.iteritems()
>>> it
<dictionary-itemiterator object at 0x7f4e720004c8>
>>> list(it)
[('url', 'http://www.python.org'), ('span', 0), ('title', 'Python Web Site')]
>>> 
keys和iterkeys方法将字典中的键以列表形式返回,iterkeys返回的是针对键的生成器。
pop方法用来获取对应于给定键的值,然后将这个键-值对从字典中移除。
>>> d
{'url': 'http://www.python.org', 'span': 0, 'title': 'Python Web Site'}
>>> d.pop('span')
0
>>> d.pop('title')
'Python Web Site'
>>> d
{'url': 'http://www.python.org'}
>>> 
popitem方法会随机弹出字典中随机的项
>>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'span': 0}
>>> d
{'url': 'http://www.python.org', 'span': 0, 'title': 'Python Web Site'}
>>> d.popitem()
('url', 'http://www.python.org')
>>> d.popitem()
('span', 0)
>>> d.popitem()
('title', 'Python Web Site')
>>> d.popitem()      #字典为空时会报KeyError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'
>>> 
setdefault方法在某种程度类似于get方法,就是能够获得与给定键相关联的值,除此之外,
setdefault还能在字典中不含有给定键的情况下设定相应的键值。
>> d = {}
>>> d.setdefault('name','liu')
'liu'
>>> d
{'name': 'liu'}
>>> d.setdefault('name2', 'zhao')
'zhao'
>>> d
{'name2': 'zhao', 'name': 'liu'}
>>> d
{'name2': 'zhao', 'name': 'liu'}
>>> d['name'] = 'xing'
>>> d
{'name2': 'zhao', 'name': 'xing'}
>>> d.setdefault('name', 'liu')
'xing'
>>> d
{'name2': 'zhao', 'name': 'xing'}
>>> 
>>> d = {}
>>> print d.setdefault('name')
None
>>> 
update方法可以利用一个字典更新另一个字典
>>> d = {
...     'title': 'Python Web Site',
...     'url': 'http://www.python.org',
...     'changed': '2013 08 17'
... }
>>> x = {'title': 'Python language Website'}
>>> d.update(x)
>>> d
{'url': 'http://www.python.org', 'changed': '2013 08 17', 'title': 'Python language Website'}
>>> 
values和itervalues
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值