[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 字典键
不允许一个键对应多个值,当有键发生冲突时(字典键重复赋值),取最后(最近)的赋值
键必须时可哈希的,不可变的类型都是可哈希的