一、知识点

(一)什么是列表?为什么要用列表?

我们已经学过了用变量保存数据。那我们来看看下面这个问题:假如你开了一家咖啡店,想记录一年里每天卖出去几杯咖啡,那该怎么办呢?

一种办法是建立365个变量,比如第1天卖出的咖啡的杯数、第2天卖出的咖啡的杯数、……、第365天卖出的咖啡的杯数。每个变量中保存一天的数据,每卖出一杯咖啡,就把相应的变量值增加1。

这种方法虽然正确,不过很麻烦:光是建立365个变量就很累,更不用说当修改变量的值时,得先找准变量了。

遇到这种情况时,列表是一个好的解决方案。列表,也叫作数组,顾名思义,就是我们把同类型的变量合在一起,做成一个表格。以上面的问题为例,我们建立一个列表,名字为“每天卖出的咖啡的杯数”,如图8-1所示,这个列表有365项,第1项保存第1天卖出的咖啡的杯数,第2项保存第2天卖出的咖啡的杯数……这样就方便多啦!

082-1

图8-1 用列表记录全年365天每天卖出的咖啡的杯数

(二)怎样理解列表?

列表是存放很多变量的容器。打个比方,列表就像是一列高铁,列表里的项就是高铁的车厢。我们乘坐高铁时需要知道自己在几号车厢,访问列表时也一样,需要指明要用第几项中保存的数据。

(三)对列表的操作

图8-2中展示了对列表的基本操作示例,后面有详细介绍。

082-2

图8-2 对列表的基本操作示例

(1)创建列表

点击左侧的“变量”按钮,再点击“建立一个列表”,就能创建列表了;创建时,只需要指定列表名称即可。和创建变量一样,我们可以规定是所有角色都能够使用这个列表,还是只有创建者能够使用这个列表。刚创建的列表是空表,里面没有任何数据。

(2)添加数据

在创建了列表之后,点击左侧的“变量”按钮,会看到一系列积木块,其中,使用“将……加入列表”积木可以向列表中添加一项;新添加的项总是放到列表的末尾。比如,当列表是空表时,新加入的数据放在第1项;再新加的数据,就放到第2项。卜老师提醒我们,Scratch中列表的项是从1开始编号的,其他计算机语言,比如C、Python等,都是从0开始编号。

另一种添加列表项的方法是使用“将……插入列表的第……项”积木,可以指定把一个数插入第几项。比如,当列表中已有2项时,我们使用“将999插入第1项”积木,这样第1项的值就变为999,而原来第1项保存的数放到第2项,原来第2项保存的数放到第3项。

(3)修改数据项

“将列表的第……项替换为……”积木可以直接把某一项保存的数据替换成新的值。

(4)删除数据项

“删除列表的第……项”积木只删除一项,而“删除列表的全部项”积木直接把列表清空。

(5)访问数据项

使用“……的项目数”积木可以知道列表里现在共有几项数据,使用“……的第……项”积木可以知道列表中的某一项保存的数据。我们也可以反过来:使用“……中第一个……的编号”积木,可以知道数据到底被保存在哪一项里了;当多个项里都保存了同样的数据时,就返回第一个保存这个数据的项目的编号。

此外,使用“……包含……?”积木可以判断列表中是否包含某个数据。