字典

字典: 通过查找某个特定的词语(键),从而找到它的定义(值)

创建字典
由多个键及于其对应的值构成的 键—值对组成
每个键和它的值之间用冒号( : ) 隔开,项之间用逗号( , )隔开
整个字典是由一对大括号括起来

phone = {'Alice':'1234' , 'Bob':'2345' , 'Cecil':'3456'}

dict函数
通过其他映射(比如其他字典)或者(键,值)对的序列建立字典

>>> item = [('name','Gumby'),('age',42)]
>>> d = dict(items)
>>> d
	{'age':42,'name':'Gumby'}
>>> d['name']
	'Gumby'

dict函数也可以通过关键字来创建字典

>>> d = dict(name='Alice',age=12)
>>> d
	{'age'=12,'name'='Alice'}

基本字典操作

len(d):返回d中项(键—值对)的数量
d[k] :返回关联到键k上的值
d[k]=v :将值v关联到键k上
del d[k] :删除键为k的项
k in d :检查d中是否有含有键为k的项

字典与列表的重要区别

字典的键不一定为整型数据,键可以是任意的不可变类型。
即使键起初在字典中并不存在,也可以为它赋值,这样字典就会建立新的项

字典的格式化字符串
在每个转换说明符中的%字符后面,可以加上键(用圆括号括起来),后面再跟上其他说明元素

>>> phone
	{'Alice':'1234','Bob':'2345','Cecil':'3456'}
>>> "Alice 's phone number is %(Alice)s." %phone
	"Alice 's phone number is 1234

字典的方法

clear :清除字典中的所有项(原地操作)

>>> d = {}
>>> d['name'] = 'Alice'
>>> d['age'] = 12
>>> d
	{'age':12,'name':'Alice'}
>>> returned_value = d.clear()
>>> d
	{}
>>> print returned_value
	None

copy :返回一个具有相同键—值对的新字典(浅复制)

>>> x = {'user':'admin','machines':['foo','bar','baz']}
>>> y = x.copy()
>>> y['user'] = 'mlh'
>>> y['machines'].remove('bar')
>>> y
	 {'user':'mlh','machines':['foo','baz']}
>>> x
	 {'user':'admin','machines':['foo','baz']}

当在副本中替换值的时候,原始的字典不受影响,但是如果修改了某个值,原始的字典也会改变

>>> from copy import deepcopy
>>> d = {}
>>> d['name'] = ['Alice','Bob']
>>> c = d.copy()
>>> dc = deepcopy(d)
>>> d['name'].append('Clive')
>>> c
{'name':['Alice','Bob','Clive']}
>>> dc
{'name':['Alice','Bob']}

fromkeys :使用给定的键建立新的字典,每个键都对应一个默认的值None

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

get :更宽松的访问字典项的方法

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

has_key :检查字典中是否含有特定的键
形式:has_key(k)

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

items和iteritems :将字典所有的项以列表方式返回,列表中的每一项都表示为(键,值)对的形式
返回的项没有特定的次序
但iteritems会返回一个迭代器对象而不是列表

#-----items的使用
>>> d = {'Alice':'asdf','Bob':'zxcv','Clive':'0'}
>>> d.items()
	[('Alice','asdf'),('Clive',0),('Bob','zxcv')]
	
#-----iteritems的使用
>>> it  = d.iteritems()
>>> list(it)
	[('Alice','asdf'),('Clive',0),('Bob','zxcv')]

keys和iterkeys :keys将字典中的键以列表的形式返回,而iterkeys返回针对键的迭代器

pop :获得对应于给定键的值,然后将这个键-值对从字典中移除

>>> d = {'x':1,'y':2}
>>> d.pop('x')
	1
>>> d
	{'y':2}

popitem :弹出随机的项,

>>> d = {'Alice':'asdf','Bob':'zxcv','Clive':'0'}
>>> d.popitem()
	('Alice':'asdf')
>>> d
	{'Bob':'zxcv','Clive':'0'}

setdefault :能够获得与给定键相关联的值,还可以在字典中不含有给定键的情况下设定相应的键

>>> d = {}
>>> d.setdefault('name','N/A')
	'N/A'
>>> d
	{'name':'N/A'}
>>> d['name'] = 'Alice'
>>> d.setdefault('name','N/A')
	'Alice'
>>> d
	{'name':'Alice'}

update :利用一个字典项更新另外一个字典

>>> d = {
		'title':'BAIDU',
		'url':'http://www.baidu.com',
		'changed':'June 12 12:23'
		}
>>> x = {'title':'BAIDU'}
>>> d.update(x)
>>>d
	{'title':'BAIDU','url':'http://www.baidu.com','changed':'June 12 12:23'}

values和itervalues :以列表的形式返回字典中的值(itervalues返回值的迭代器),返回值的列表中可以包含重复的元素

>>> d = {}
>>> d[1] = 1
>>> d[2] = 2
>>> d[3] = 3
>>> d.values()
	[1,2,3]
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值