字典,map,以键值对的形式存储数据,每个键和对应的值之间用冒号隔开,项之间用逗号隔开,整个字典由一对大括号括起来。空字典由两个大括号组成

例如:phonebook={'jack':'1234', 'grace': '2245'}

  • 1.创建和使用字典

dict函数,通过其他应收或者键值这样的序列对建立字典

items = [('name','gumby'), ('age',42)]

d = dict(items)

得到结果d {'age':42, 'name':'gumby'}

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

d=dict('name'='gumby', age=42)

  • 2.基本字典操作

字典的基本行为在很多方面和序列类似:

len(d)返回d中项(键值对)的数量

d[k]返回关联到k键上的值

d[k] =v 将值v关联到k键上

del d[k]删除键为k的项

k in d 检查d中是否有含有键为k的项

不同之处:

键类型:字典的键不一定为整型数据,也可能是其他不可变类型,如浮点型,字符串或者元组

自动添加:某个键起初在字典中不存在时,也可以为它分配一个值,字典相应的会建立新的项(自动增加),而不能将值关联到列表范围之外的索引上(列表操作只能在索引范围内)

成员资格:表达式 k in d (d为字典)查找的k是键;而表达式v in l (l为列表)查找的l是值

  • 3.字典的格式化字符串

格式化字符串时,可以使用%后面跟上(用圆括号括起来的)键,后面再跟上其他说明元素

phonebook = {'number': '1234'}

'my phone number is %(number)s ' % number

输出' my phone number is 1234'

这种格式化输出在模板系统中非常有用

  • 4.字典方法:

clear,清除字典中所有的项,原地操作,无返回值

copy,返回具有相同键值对的新字典(浅复制),可以使用deepcopy复制所有的值

fromkeys,使用给定的键建立新的字典

get,访问字典中项,如果键不存在则返回none,而不是报错

has_key,结果同k in d,看个人喜好,python3.0中没有此方法

items和iteritems,items方法将所有字典项以列表方式返回,返回中没有特殊顺序。iteritems作用大致相同,但返回迭代器对象,而不是列表

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

pop,获取对应键的值,然后将键值对从字典中移除

popitem,随机移除字典中的项,好处是不用先获取字典项即可一个一个移除字典项

setdefault,和get一样返回指定键关联的值,如果不存在,则指定默认值(更新字典),如果存在,则返回当前值(不修改字典)

update,可以利用一个字典更新另外一个字典,如果键相同则覆盖值,否则会添加到旧的字典中

values和itervalues,以列表形式返回字典中的值,itervalues返回值的迭代器,与列表方法不同的是返回值中可以有重复项