dict 字典的相关操作

创建
空的字典:
dict = {}
有初始化值的:
dict = {'name': 'earth', 'port': 80}
转换来的:
fdict = dict((['x', 1], ['y', 2]))
创建个具有相同值的字典:
>>> {}.fromkeys(('x', 'y'), -1)
{'y': -1, 'x': -1}
如果没有给出值,则默认为 None
>>> {}.fromkeys(('foo', 'bar'))
{'foo': None, 'bar': None}
注意,若想创建只有一个键的 dict,则需要在第一个键后面加逗号
>>> {}.fromkeys(('foobar',))
{'foobar': None}
否则
>>> {}.fromkeys(('foobar'))
{'a': None, 'r': None, 'b': None, 'o': None, 'f': None}

访问
>>> dict2 = {'name': 'earth', 'port': 80}
>>> for key in dict2.keys():
... print 'key=%s, value=%s' % (key, dict2[key])

从 python 2.2 开始,获取键值列表的方法变得更简单:
>>> for key in dict2:
... print 'key=%s, value=%s' % (key, dict2[key])

要得到某个元素的值,可以用下面的方式:
>>> dict2['name']

get() 和 [] 相似不同的是,它允许你为不存在的键提供默认键值。如果该键不存在,则给出默认值,若也未给出默认值,则返回 None。
此方法比采用键查找更灵活,因为不必担心因键不存在而引发的异常。
>>> dict2.get('name')
'earth'
>>> dict2.get('xxxx')
>>> type(dict2.get('xxxx'))
<type 'NoneType'>
>>> dict2.get('xxxx', 'no such key')
'no such key'

setdefault() 检查字典是否有某键
有:返回键值
没有:创建该键
>>> myD =  {'name': 'earth', 'port': 80}
>>> myD.keys()
['name', 'port']
>>> myD.items()
[('name', 'earth'), ('port', 80)]
>>> myD.setdefault('port', 8080)
80
>>> myD.setdefault('port1', 8000)
8000
>>> myD.items()
[('port1', 8000), ('name', 'earth'), ('port', 80)]

查看所有的键
>>> dict2.keys()
['name', 'port']

查看所有的值
>>> dict2.values()
['earth', 80]

返回一个包含字典中 键、值对 元组的列表
>>> dict2.items()
[('name', 'earth'), ('port', 80)]

返回一个有序的迭代子
>>> sorted(dict2)
['name', 'port']


是否存在
>>> 'server' in dict2
False
>>> 'name' in dict2
True

更新
字典中的键是不允许被修改的(当然其对应的值可以),因此,键不能用列表等可修改的类型。
>>> dict2['name'] = 'venus' # update
>>> dict2['port'] = 6969
>>> dict2['arch'] = 'sunos5' # insert
update() 允许将一个字典的内容添加到另一个字典中。
相同的键:覆盖其值
不同的键:添加
>>> dict3 = {'host': 'venus', 'server':'http'}
>>> dict2.update(dict3)
>>> dict2
{'host': 'venus', 'server': 'http', 'name': 'earth', 'port': 80}

删除
del dict2['name']
del dict2

复制
>>> dict4 = dict2.copy()
>>> dict4
{'port': 80, 'host': 'venus', 'name': 'earth', 'server': 'http'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值