令狐葱

大漠孤烟直,长河落日圆。

博客园 首页 订阅 管理

1、映射(mapping):通过名字引用值的数据结构。字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。键可以是数字、字符串甚至是元组。

2、字典比较适用的情形:表征游戏棋盘的状态,每个键都是由坐标值组成的元组;存储文件修改次数,用文件名作为键;数字电话/地址簿

3、字典的创建和使用

  phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'},使用大括号,每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开

  空字典用{}

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

  item=[('name','Gumby'),('age',42)]

  d=dict(items)

  d={'age':42,'name':'Gumby'}

  d['name']='Gumby'

4、字典的基本操作

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

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

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

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

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

  键类型:字典的键不一定为整型;自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值;成员资格:k in d 查找的是键

5、字典的方法

  clear方法清除字典中所有的项。这个是原地操作,没有返回值(返回None)

  copy方法,返回一个具有相同键值对的新字典,为浅复制

  deepcopy 深复制,修改原始字典,不会修改后续复制的字典

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

  get方法是个更宽松的访问字典项的方法。get可以访问字典中不存在的项,返回None

  has_key检查字典中是否含有给出的键。d.has_key(k)相当于k in d

  items 将所有的字典项以列表方式返回(键,值)

  iteritems作用于items大致相同,但是返回一个迭代器对象而不是列表。iteritems更高效

  keys将字典的键以列表形式返回

  iterkeys返回针对键的迭代器

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

  popitem方法类似于list.pop,后者会弹出列表的最后一个元素。但是不同的是,popitem弹出随机的项,因为字典并没有“最后的元素”或者其他顺序的概念。

  setdefault方法在某种程度上类似于get方法,就是能获得与给定键相关联的值,除此之外,setdefault还能在字典中不含有给定键的情况下设定相应的键值。当键不存在是,setdefault返回默认值并相应的更新字典,如果键存在,那么就返回与其对应的值,但不改变字典。默认值是可选的。不设定会默认为None.

  update方法可以利用一个字典项更新另外1个字典。提供的字典中的项会被添加到旧的的字典中,若有相同的键则会进行覆盖。

  values和itervalues 前者以列表的形式返回字典中的值,后者返回值得迭代器。与返回键的列表不同的是,返回键的列表中可以包含重复的元素。

  

 

  

 

  

 

  

 

posted on 2016-04-19 19:23  livermorium116  阅读(250)  评论(0编辑  收藏  举报