映射
映射表示由任意索引集索引的有限的,无序的,键不重复的对象集合。目前有一种映射类型:字典。
一、字典
一个字典对象是可变的,它是一个容器类型,可以通过 {key1:value1, key2:value2,...} 方法创建。字典能存储任意个数的 Python 对象,也包括其他的容器类型。字典的索引操作使用的是和序列相同的语法,但是在方括号中的元素是键,而不是相对位置,作为映射,字典仅支持通过键获取元素。每个键只能对应一个值,一键对应多个值是不允许的。对一个新的字典的键赋值会创建该键。
几乎所有类型的 Python 不可变对象都可以用作键(字典的键需要密钥的哈希值保持不变),不过一般还是以数字或者字符串最为常用。值可以是任意类型的 Python 对象。
字典类型和序列类型(列表、元组)的区别是存储和访问数据的方式不同。序列类型只用数字类型的键(从序列的开始起按数值顺序索引)。字典类型可以用其他对象类型做键,一般最常见的是用字符串做键(keys)。和序列类型的键不同,映射类型的键(keys)直接或间接地和存储的数据值相关联,而且映射类型中的数据是无序排列的。
除了列表以外,字典也许是Python之中最灵活的内置数据结构类型,如果把列表看做是有序的对象集合,那么就可以把字典当成是无序的集合。它们主要的差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。对字典进行索引是非常快速的搜索操作,Python采用最优化的散列算法来寻找键,因此使用键查找的速度非常快。字典存储的是对象的引用(不是拷贝)。
哈希表与字典的关系
序列类型用有序的数字键做索引将数据以数组的形式存储。 一般,索引值与所存储的数据毫无关系。还可以用另一种方式来存储数据:基于某种相关