字典,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返回值的迭代器,与列表方法不同的是返回值中可以有重复项