Python映射类型dict(字典)详解

Python内置的另一种有用的数据类型是字典dict。与由数字索引的序列不同,字典由键key索引,键可以是任何不可变类型;字符串和数字都可以用作键。如果元组仅包含字符串、数字或其它元组,则它们可以用作键;如果元组直接或间接包含任何可变对象,则它不能用作键。您不能使用列表作为键,因为可以被修改。

最好将字典视为一组key:value对,要求key是唯一的(在一个字典中)。一对大括号创建一个空字典:{}。在大括号内放置一个逗号分隔的键值对列表,将初始键值对添加到字典中;这也是字典在输出时的显示方式。

>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)])
>>> e = dict({'three': 3, 'one': 1, 'two': 2})
>>> f = dict({'one': 1, 'three': 3}, two=2)
>>> a == b == c == d == e == f
True

字典上可以用某个键存储一个值,并提取给定键的值。也可以使用del删除键,值对。如果您使用已在使用的键进行存储,则与该键关联的旧值将被删除。使用不存在的键提取值将引发错误。

>>> d = {'one': 1, 'two': 2, 'three': 3}
>>> d[`one`]
1
>>> d['one']=4
>>> d['one']
4

对字典执行list(d)返回字典中使用的所有键的列表,按插入顺序排列。如果你想对它进行排序,只需使用sorted(d)。要检查字典中是否有单个键,请使用in关键字。

>>> d = {'one': 1, 'two': 2, 'three': 3}
>>> list(d)
['one', 'two', 'three']
>>> sorted(d)
['one', 'three', 'two']
>>> 'one' in d
True