您的位置:首页 > 编程语言 > Python开发

python3字典

2017-09-03 20:35 796 查看

字典

字典是另一种可变容器模型,且可存储任意类型对象。

除了列表以外,字典是也许是python中最灵活的内置数据结构,如果把列表看成有序的集合,那么字典可以当成无序的集合。

他们的主要差别在于:字典当中的元素是通过键来存取的,而不是通过偏移量

作为内置类型,字典可以取代许多搜索算法和数据结构,python字典的主要的属性如下:

通过键而不是偏移量读取

  字典有时又叫做关联数组或散列表。它们通过键将一系列值连接起来,这样可以使用键从字典总取出值。

任意对象的无序集合

  保存在字典中的数据没有特定的顺序。键提供了字典中象征性(而非物理性)的位置

可变长,异构,任意嵌套

  与列表类似,可在原处增长或缩短,它们可以包含任意类型的对象,而且支持任意深度的嵌套

可变映射类型

  通过给键赋值,字典可以在原处修改,但是不支持字符串或列表的序列操作,因为字典是无序集合

对象引用表(散列表)

  如果说列表是支持位置读取对象引用数据,那么字典是支持键读取的无序对象引用表

 

字典的每个键值(key-->value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 

d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。

或者通过dict({key:value})的方式创建字典
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

访问值:
  通过键访问 print(dic['list']) 返回:['list1','list2']
  print(dic[12]) 返回:'字符串12'
修改或添加:
  操作已有的键是修改,操作没有的键是添加
  dic['list']='只有一个' #修改
  dic['Age']=17 #添加一个监键值对
删除字典/元素或清空:
  del dic['list'] 清除键为“list”的元素
  del dic 删除字典
  dic.clear() 清空字典
特性:
  键是唯一的,如果有两个相同的键,后面的会覆盖前面的
  键不可变,可以用数字,字符串或元组充当

 

内置函数和方法:
  len(dict) 返回元素个数,键的总数
  str(dict) 输出字典,以可打印的字符串表示
  type(variable) 返回元素或变量的数据类型
  key in dict 如果键在字典里,返回True
  clear() 清空字段所有元素
  copy() 返回一个字典的复制
  keys() 以列表返回一个字典所有的键
  values() 以列表返回字典中的所有值
  get(key,default==None) 返回指定键的值,如果值不存在字典中,返回default值
  setdefault(key,default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
  update(dict) 把字典dict2的键/值对更新到dict中
  items() 以列表返回可遍历的(键,值)元组数组

 

其他字典方法

  字典方法提供了多种工具字典values和items方法分别返回字典值的列表和(key,value),可以把它们放在list中调用

>>> dic={"name":'南希',"age":17}
>>> list(dic.values())
['南希', 17]
>>> list(dic.items())
[('name', '南希'), ('age', 17)]

 

  然而如果当读取读取的键不存在是,将会返回一个默认的None值

>>> print(dic.get("gender"))
None

  dict的update方法类似合并,它和从左到右的顺序无关,它把参数字典的值合并到调用者字典中,然而盲目的update可能会导致覆盖相同的键值

dic2={"gender":"男"}
>>> dic.update(dic2)
>>> dic
{'name': '南希', 'gender': '男', 'age': 17}

 

 

 

 

字典使用注意:

  序列运算无效:即不可使用dic[0]来使用,她会抛出一个keyError的异常

  对新索引赋值会添加项:添加字典中未出现的键值会新建这个键值

  键不一定总是字符串:可以是数字,字符串,元组等

 

关于列表和字典的用法技巧将在对应文章讲解

更多的用法及描述还是需要查看python的官方文档。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: