Python 基础-字典 (dictionary)
字典
dict,是 Python 唯一的标准 mapping 类型,也是内置在 Python 解释器中的。
mapping object 把一个可哈希的值(hashable value)映射到一个任意的 object 上。
什么是可哈希的
一个
object 是可哈希的(hashable), 是指这个 object 在其生存期内有一个不变的哈希值
(
hash value),即__hash__()方法返回的值。
所有不可变的(
immutable)内置 object 都是 hashable 的,比如 string,tuple。所有可变的
(
mutable)内置容器都不是 hashable 的,比如 list,dict(即没有__hash__()方法)。而所有
自定义的类(
use-defined class)对象都是可哈希的(hashable),并且只能和自己相等,其
hashvalue 为其 id(object)的值,这里的 id()为内置函数,CPython 实现的时候取的对象在内
存中的地址。
字典
Dictionary 的 key 必须是可哈希的,所以 tuple,string 可以做 key,而 list 不能做 key,
关于这个我以后会专门解释,或参见文末参考第
3 篇。
dict 本身是一个类
class dict(mapping)
1,字典的创建
>>> d=
dict
({
1
:'a',
2
:'b',
3
:'c'})
#通过 dict 类来构建
>>> d
{
1
:'a',
2
:'b',
3
:'c'}
>>> d2= {
1
:'a',
2
:'b',
3
:'c'} #直接构建,注意语法,大括号,冒号,逗号
>>> d2
{
1
:'a',
2
:'b',
3
:'c'}
2,dictionary 支持的操作
作为
Python 唯一的标准 mapping type,dictionary 支持了增,删,查,整体更新等操作。
一部分操作是由
dict 的成员函数实现的,一部分操作是由 Python 的内置函数(built-
in)function 实现的,也有使用 Python 的 del 语句
2.1 引用元素
直接用
d[key],就可以得到 key 所对应得那个 object,但是如果 key 不存在呢,如果使用的
就是标准的
dict,那么会抛出 KeyError 异常。但是如果我们是自己从 dict 派生了一个自己的