VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 深入探究Python中的字典容器(4)

 

可以看到,创建字典(dictionary)需要键值和数据值。第一次从 list 创建字典(dictionary)的尝试失败了,这是因为没有匹配的键-数据值对。第二个和第三个示例演示了如何正确地创建 字典(dictionary):在第一种情况下,使用一个 list,其中的每个元素都是一个 tuple;在第二种情况下,也使用一个 list,但是其中的每个元素是另一个 list。在这两种情况下,内层容器都用于获得键到数据值的映射。

直接创建 dict 容器的另一个方法是直接提供键到数据值的映射。这种技术允许显式地定义键和与其对应的值。这个方法其实用处不大,因为可以使用花括号完成相同的任务。另外,如前面的例子所示,在采用这种方式时对于键不能使用数字,否则会导致抛出一个异常。

访问和修改字典(dictionary)

创建了 dictionary 之后,需要访问其中包含的数据。访问方式与访问任何 Python 容器数据类型中的数据相似,如清单 4 所示。

清单 4. 访问 dictionary 中的元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> d = dict(zero=0, one=1, two=2, three=3)
>>> d
{'zero'0'three'3'two'2'one'1}
>>> d['zero']
>>> d['three']
>>> d = {0'zero'1'one'2 'two'3 'three'4 'four'5'five'}
>>> d[0]
'zero'
>>> d[4]
'four'
>>> d[6](most recent call last):
 File "<stdin>", line 1in ?: 6
>>> d[:-1](most recent call last):
 File "<stdin>", line 1in ?: unhashable type

可以看到,从字典(dictionary)中获取数据值的过程几乎与从任何容器类型中获取数据完全一样。在容器名后面的方括号中放上键值。当然,字典(dictionary)可以具有非数字的键值,如果您以前没有使用过这种数据类型,那么适应这一点需要些时间。因为在字典(dictionary)中次序是不重要的(dictionary 中数据的次序是任意的),所以可以对其他容器数据类型使用的片段功能,对于 字典(dictionary)是不可用的。试图使用片段或者试图从不存在的键访问数据就会抛出异常,指出相关的错误。

Python 中的字典(dictionary)容器也是易变的数据类型,这意味着在创建它之后可以修改它。如清单 5 所示,可以添加新的键到数据值的映射,可以修改现有的映射,还可以删除映射。

清单 5. 修改字典(dictionary)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> d = {0'zero'1'one'2'two'3'three'}
>>> d[0]
'zero'
>>> d[0= 'Zero'
>>> d
{0'Zero'1'one'2'two'3'three'}
>>> d[4= 'four'
>>> d[5= 'five'
>>> d
{0'Zero'1'one'2'two'3'three'4'four'5'five'}
>>> del d[0]
>>> d
{1'one'2'two'3'three'4'four'5'five'}
>>> d[0= 'zero'
>>> d
{0'zero'1'one'2'two'3'three'4'four'5'five'}

相关教程