字典,map,以键值对的形式存储数据,每个键和对应的值之间用冒号隔开,项之间用逗号隔开,整个字典由一对大括号括起来。空字典由两个大括号组成
例如:phonebook={'jack':'1234', 'grace': '2245'}
dict函数,通过其他应收或者键值这样的序列对建立字典
items = [('name','gumby'), ('age',42)]
d = dict(items)
得到结果d {'age':42, 'name':'gumby'}
也可以通过关键字参数来创建字典
d=dict('name'='gumby', age=42)
字典的基本行为在很多方面和序列类似:
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是值
格式化字符串时,可以使用%后面跟上(用圆括号括起来的)键,后面再跟上其他说明元素
phonebook = {'number': '1234'}
'my phone number is %(number)s ' % number
输出' my phone number is 1234'
这种格式化输出在模板系统中非常有用
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返回值的迭代器,与列表方法不同的是返回值中可以有重复项