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

4.1 列表

列表是Python中的内置对象,它是Python中最灵活的有序集合对象。它有些功能和之前提到的字符串类型很像,但比字符串要灵活得多。列表可以包含任何种类的对象,不管是数字、字符串甚至是另外几个列表。同时,列表和字符串有着本质的不同,它是可变对象,我们可以通过指定偏移值和分片,列表方法调用以及删除语句等方法来实现在原处修改列表的操作。

接下来先通过一个关于分类加法计数(人教版高中数学选修2-3)的程序来了解一些关于列表的简单操作。这个程序是计算从北京到上海一共有多少种不同的走法(见图4.1)。

图4.1 分类加法图解

程序分为两段,第一段将不同的走法存入一个列表中,第二段将所有走法都展示给用户(将项从列表中取出)。具体程序如程序4.1所示。

程序4.1 计算北京到上海的走法:

输出:

分析:

由分类加法计数原理:若完成一件事有两类不同的方案,其中第一类方案中有m种不同的方法,第二类方案中有n种不同的方法,那么完成这件事一共有N=m+n种不同的方法。从北京到上海的走法数即飞机和火车这两类方案的方法总和。

下面回到程序中,由于我们在第3行的循环中直接使用了list的append()方法,所以在用之前要声明一下list是一个列表,如程序的第1行所示。我们使用“[]”表示一个空列表并赋值给list。声明列表之后,使用刚刚提到的append()方法并放在循环中。使用两个循环将北京到上海的走法附加到列表list中。

append()方法将项插入列表尾,注意列表的索引值同字符串相同,都是从0开始的。程序的第8行,使用一个len函数输出list的长度,由上文的分类加法可知,list的长度就是方法总和即要求的方法数。最后,我们来看第10行的for循环,因为列表是可循环对象,所以可以直接使用forin语句遍历列表的所有元素,将每项输出。

通过程序4.1,是不是对列表有了一定了解?接下来我们列出一些关于列表的常用操作,这些都是很有代表性的操作,如表4.1所示。

表4.1 常用的列表操作

下面再简单介绍下关于表4.1的一些知识点。表中的L、L1、L2表示已经定义好的列表,如果要使用列表的操作的话一定要先声明,否则会报错。表中使用i作为列表的索引值,一定记住列表的索引值是从0开始的,X表示某一对象,它可以是任何类型的数据。

若是对表中的某些操作还不理解,可以在PyCharm中定义一个列表并对它操作,使用print(L)可以将整个列表内容输出。

接下来再通过一个例子练习一下列表的操作,假设有列表['a', 'b', 'c', 't', 'u', 'q', 'c', 'p', 'e', 'b'],其中有些项是重复的,我们要使用程序将重复项剔除。

程序4.2 除去列表中的重复项:

输出:

分析:

这个程序的步骤比较明了,在遍历list的同时我们使用一个if语句过滤掉重复出现的项,最后将不包含重复项的新列表输出。