人工智能基础教程:Python篇(青少版)
上QQ阅读APP看书,第一时间看更新

4.2 字典

字典就像它的名字一样,我们知道了关键字,就可以在字典里找到与关键字匹配的更多详细信息。字典在Python中是由一系列键-值对组成的,将键(keys)与值(values)关联到一起。注意,字典中的键必须是唯一的,而且,虽然键并不指定必须使用哪种类型,但是我们只能使用不可变对象作为键(如字符串)。对于字典中值的类型,并没有什么要求,我们可以根据具体约束选用可变或是不可变的对象。

如果说列表是有序对象的集合,那么字典就是无序对象集合。这种特性导致字典中元素需要通过键来存取,而不能像列表那样通过偏移存取。

接下来,通过化学课上学的元素周期表(见图4.2)来看看字典的具体操作。

图4.2 元素周期表

化学元素周期表对大家来说是很熟悉的,我们在初中就接触过。

在这里我们使用程序创建一个字典,字典中只存有元素周期表中的前5个元素。将元素的化学符号作为字典的键,元素名称作为值。具体程序如程序4.3所示。

程序4.3 元素周期表:

输出:

分析:

程序的第1行,我们使用:d = {key_1:value1, key_2:value2}这种形式来制定键值和值。注意,键值与值之间用“:”分开,每个元素(一组键值和值)使用“,”区分,最后将所有内容套在“{}”中构成一个字典。

通过图4.2的元素周期表,可以看到字典element中元素的顺序不对,我们在第3行删除键值C和与其对应的值。删除之后,在第4行添加键值B和值Boron,添加完后,元素周期表的前5项已经在element中构建完成。

完成字典的构建之后,来看看如何输出字典的项。我们在程序的第6行,指定输出键值为H的值,即输出结果的第1行。最后,使用一个for…in语句迭代输出字典中的每组值。对于这个迭代语句我们要注意的是element.items()语句中的items()一定不要忘了,如果不加这项,只会迭代输出字典的键值。

表4.2中列出了一些具有代表性的字典操作。

表4.2 常用的字典操作

对于表4.2,每个操作都对应着一个解释,若是对表中的某些操作还不理解,可以在PyCharm中定义一个字典并对它操作,使用print(D)即可输出各项内容。

在这里我们对表4.2再多说几句。表中使用D、D_1、E代表字典,key表示字典中的键值,keys和vals代表已经声明完成的键、值列表(或是元组)。

注意:

字典也是一种很灵活的工具,下面是使用字典的注意事项。

(1)字典是一种映射机制,一定要注意,它不是序列,也没有顺序的概念,所以不要对字典使用类似字符串和序列的那种切片操作。

(2)键不一定总是字符串。在例子中我们使用了大量的字符串作为键值,其实任何不可变对象都可以作为字典的键。例如,使用整数作为键值。