列表

列表也稱作陣列,在程式碼裡頭,把數字、文字、列表或變數,按照順序組合起來。這些按序排列資料集合就稱作列表,一個列表可以再細分為多個元素,或是一個列表內還包含其他列表,然而在進行比較複雜的運算時,往往也會透過列表的操作來實現。

打開 Webduino Blockly 編輯器 ( https://blockly.webduino.io ),展開左側目錄「基本功能」,點選「列表」,可以看到對應的列表積木。

Webduino Blockly 列表積木

以下列表積木的解說,將會使用網頁互動測試區域展示,打開網頁互動測試區,下拉選單選擇「顯示文字」,左側積木的目錄最下方會出現「顯示文字」相關積木,接下來將會使用這些積木來顯示數學式所運算的結果。

網頁互動顯示文字

(積木) 空列表

空列表通常使用在變數上,或是將一個列表清空使用,建議如果是要將變數宣告為列表,一開始要先將這個變數宣告為空列表。

建立空列表積木

(積木) 建立列表

透過建立列表的積木,可以將指定的文字、數字、變數或子列表,依序放入列表的缺口裡。

建立列表積木

建立列表預設有三個缺口,可以透過藍色小齒輪新增或刪除缺口。

輪新增或刪除列表缺口

如果在列表的三個缺口,分別放入 0、1、2,顯示出來的數值就會用逗號分隔。

顯示列表內容

列表內還可以放入列表,在內層的列表稱為子列表,而這種形式的列表也稱作「多維陣列」,如果純粹顯示也會依序用逗號分隔。

多維陣列列表

如果會使用變數,也可以先賦予變數數值,然候用列表來裝載變數,呈現出來也會是一樣的結果。

變數列表

(積木) 建立重複內容列表

在空格放入變數、文字或數字,就會根據重複設定的次數,建立具有這些數值重複的列表。

建立重複內容列表

舉例來說,在空格處放入文字 a,重複五次之後就會變成有五個缺口的陣列,每個缺口內都是 a。

顯示重複內容列表

(積木) 列表長度

列表長度也就是列表積木缺口的數量。

列表長度

假設列表有三個缺口,這個列表的長度顯示出來就會是 3。

顯示列表長度

如果列表裡有子列表,並不會影響到這個列表的長度,因為長度還是取決於這個列表本身的缺口,所以下方的例子,就算是子列表加起來共有九個缺口,原本的列表還是只有三個缺口,所以長度為 3。

子列表不影響列表長度

(積木) 空列表判斷

空列表判斷的積木主要是和「邏輯」積木搭配,可以判斷列表長度是否為 0。

空列表判斷

如果是列表長度為 0 ( 空列表 ),得到的結果會是 true,如果列表長度不為 0,結果則會是 false。

顯示空列表判斷值

比較需要注意的是,如果列表只有一個缺口,但沒有放入任何東西,列表的長度仍然是 1 ( 上面有講過,列表長度就是缺口數量 ),所以如果有一個缺口但沒有放入數值,顯示出來就會是 false。

列表缺口沒放入數值,顯示 false

(積木) 尋找列表內容

尋找列表內容的積木,會從列表當中尋找指定的文字或數值,找到之後會回傳這個文字或數值所在的位置 ( 從前面數過來第幾個缺口 )

尋找列表內容

假設陣列有五個缺口,裡面分別有五個文字 Webduino、apple、orange、hello 和 yes,當我們尋找 hello,就會回傳 4 的數字。

顯示尋找列表內容值

(積木) 取出列表內容

透過取出列表內容的積木,指定某個缺口的順序數字,就可以取出這個缺口內的數值。

取出列表內容

取出的方式分別有:取值、取出並移除 ( 取出後列表這個缺口會消失,長度減 1 ),移除 ( 列表這個缺口消失,內容消失,長度減 1 )

選擇取出列表內容方式

如果使用「移除」,可以看到整個積木從原本會回傳值 ( 積木凸出接頭在左側 ),變成操作性質的積木 ( 積木接口在上下兩側 )

自列表移除積木

當我們用取值,指定數字 2,出來的數值就會是 apple。

列表取值

如果是使用「移除」,執行後就會發現陣列的 apple 消失了,原本陣列從五個缺口變成四個缺口。

列表移除

(積木) 指定列表內容

透過指定列表內容積木,可以指定一個缺口的數字和一個要放入缺口的數值,就會替換掉這個缺口原本的數值,或是從這個缺口後方插入一個數值。

指定列表內容

第一個下拉選單,可以指定「設定」還是「插入」,使用「設定」會覆蓋原本缺口的內容,插入則是會在指定缺口後方新增一個缺口,列表長度會加 1。

指定插入或設定列表內容

第二個下拉選單,可以指定某個缺口、倒數第幾個缺口、第一筆、最後一筆或隨機。

指定列表缺口

例如說有個列表,第二個缺口的數值是 apple,透過指定列表內容將其換為 QQQ,出來的結果就發現 apple 變成 QQQ 了。

顯示指定列表內容

(積木) 取得一個範圍的列表內容

前面提到的陣列取值都是取出「單一」個缺口的值,如果要取得一個範圍內的數值,就要用這個積木來實現。

取得一個範圍的列表內容

這個積木有兩個下拉選單,內容都一樣有三個選項,分別是缺口號碼、從第頭開始以及從最後開始。

選擇不同範圍的列表內容

舉例來說,如果有個長度為 5 的列表,內容是 a、b、c、d 和 e 這五個字母,如果取出 2 到 4 的數值,就會是 b、c、d 這三個字母。

顯示一個範圍的列表內容

(積木) 文字與列表轉換

如果今天有一段文字,也可以透過「文字與列表轉換」的積木,將這段文字轉換成列表,轉換的方式就是透過「分隔符」,預設的分隔符是逗號,如果一段文字中間出現兩個逗號,則會分成三段,也就是具有三個缺口的列表。

文字與列表轉換

假設有個變數,內容是一段文字「蘋果,橘子,芭樂,芒果」,透過「文字與列表轉換」的積木轉換成陣列,這時候就可以用列表的方式,取得第二個缺口的數值,就得到「橘子」的結果。

顯示文字與列表轉換值