[python] 之 字典简介

字典是python中唯一的映射类型,其哈希值(键key)和指向对象(值value)是一对多的关系;

字典是可变对象,是容器类型,能存储任意个数,任意类型的映射类型,且包含在大括号中({key1:value, key2:value2, ...});

字典中的数据类型是无序排列的.

一、创建字典

1.1 赋值创建

  dict1 = {...}

1.2 工厂方法-dict()

  dict2 = dict((['x',1], ['y',2])) # {'x':1, 'y':2}

1.3 内建方法-fromkeys(),创建默认字典

  dict3.fromkeys(keys,value=None)

  其中keys是一个元组类型,也可以是单个元素,但最终形成的字典是一个不同key对应相同value,若比提供value,则默认是None。

二、访问字典

1.1 for循环遍历字典键key

  for key in dict:

    print key,dict[key]

1.2 方括号-[]

  dict[key]

1.3 布尔操作-in 或 not in

  用于检测字典中是否存在某个键。

  key in dict

  key not in dict

1.4 更新字典

  dict4 = {'a':1, 'b':2}

  添加一个数据项或元素:dict4['c'] = 4

  修改一个数据项或元素:dict4['a'] = 'm'

  删除一个数据项或元素:

    del 删除单个键值对:del dict4['a']

    dict4.clear() 清空字典键值对

    value = dict4.pop('a'[,default]) 删除字典中指定键值对,并返回key对应的值value

1.5 字典不支持拼接(‘+’)和重复(‘*’)操作运算

三、字典类型操作符

3.1 字典键查找操作符- []

  用于获取字典中键对应的值;添加或修改字典中的键值对

3.2 键成员关系操作符 - in 或 not in

  key in dict : 一般返回布尔值,可用于IF语句结构中,作为判断条件

3.3   标准类型函数

  type() 工厂方法: 返回字典类型 ‘<type 'dict'>’

  str() 工厂方法:返回字典的字符串形式

  cmp() :字典的比较,其遵循一下顺序,字典长度,字典键,字典值

3.4 映射类型相关函数

  dict([container]) 工厂函数,如果提供了容器(container)类,就用其中的条目填充字典,否则就创建一个空子典, dict(x=1, y=3)

  len() 内建函数,返回所有元素(键值对)数目

  hash() 内建函数,判断一个元素是否可以作为一个字典的键

  sorted(dict) 内建函数,按字典键,对字典进行排序

  

 3.5 字典内建方法

dict.clear() 删除字典中的所有元素
dict.copy() 返回字浅复制的一个副本
dict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做字典,val为值(如果不提供val,则默认为None)
dict.get(key,default=None) 获取字典key的val,如果字典中不含key,则返回设置的默认值default
dict.has_key(key) key存在返回True,否则False
dict.items() 返回一个包含字典中键值对元组列表
dict.pop(key[,default]) 如果key存在,删除并返回dict[key];如果key不存在,则返回默认的default;若未设置default,则引发异常
dict.setdefault(key,defaukt=None) 返回dict[key],但不删除key和val;如果key不存在,则在字典中添加dict[key]=default
dict.update(dict2) 将字典dict2的键值对添加到字典dict
dcit.keys() 返回一个包含字典中键的列表
dict.values 返回一个包含字典中值的列表
   
   

3.6 字典键

  不允许一个键对应多个值,当有键发生冲突时(字典键重复赋值),取最后(最近)的赋值

  键必须时可哈希的,不可变的类型都是可哈希的

posted on 2016-10-29 23:12  萧飞IDO  阅读(437)  评论(0编辑  收藏  举报

导航