一、概述
映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
字典(dict)是Python中唯一的映射类型,它是存储了一个个 键值对(由 键 映射到 值)的关联容器。其中,键(key)必须是可哈希的Python对象,而 值(value)可以是任何Python对象。在功能上,Python中的字典类似于C++中的map。
Python中最强大、最灵活的数据类型当属 列表 和 字典,以下是对这两种数据类型的简单比较:
比较点列表字典
表示方法
[],[1, 2]
{},{'a': 1, 'b': 2}
访问元素的方式
索引
键
有序性
有序
无序
可变性
可变
可变
可操作性
操作丰富
操作丰富
表征的数据结构
数组、堆栈、队列等
哈希表等
二、操作
字典支持的主要操作如下:
操作说明
class dict(other)
创建字典(other可以是字典、(key, value)对的迭代器或关键字参数)
dict.fromkeys(seq[, value])
创建字典:用序列seq中的元素作为键,值全为value(未指定,则默认为None)
len(d)
返回字典d的长度(即d中元素的个数)
d[key]
如果键key在字典d中,则返回其中key对应的值;否则抛出KeyError异常
d[key] = value
设置d[key]的值为value(存在则修改,不存在则添加)
del d[key]
如果键key在字典d中,则从字典d中删除d[key];否则抛出KeyError异常
key in d
如果key在字典d中,返回True;否则,返回False
key not in d
如果key在字典d中,返回False;否则,返回True
iter(d)
同iterkeys()
d.clear()
删除字典d中的所有元素
d.copy()
返回字典d的浅拷贝
d.get(key[, default])
如果key在字典d中,则返回d[key];否则返回default(未指定,则默认为None)
d.has_key(key)
同key in d(推荐使用key in d)
d.items()
返回包含字典d中的(key, value)对的列表
d.iteritems()
迭代版的items():返回迭代器
d.iterkeys()
迭代版的keys():返回迭代器
d.itervalues()
迭代版的values():返回迭代器
d.keys()
返回包含字典d中的键的列表
d.pop(key[, default])
如果key在字典d中,则返回并删除d[key];否则返回default(未指定,则抛出KeyError异常)
d.popitem()
返回并删除字典d中的任意一个元素(如果d为空,则抛出KeyError异常)
d.setdefault(key[, default])
如果key在字典d中,则返回d[key];否则执行d[key] = default,并返回default(未指定,则默认为None)
d.update([other])
将other中的(key, value)对添加到字典d中(other可以是字典、(key, value)对的迭代器或关键字参数)
d.values()
返回包含字典d中的值的列表
d.viewitems()
返回字典d的元素视图
d.viewkeys()
返回字典d的键视图
d.viewvalues()
返回字典d的值视图
以上操作的示例如下:
>>> a = {'one': 1, 'two': 2, 'three': 3}
>>> b &