プログラミングで配列やリストという言葉を初めて聞いたとき、こんなふうに感じませんでしたか?
- 変数となにがちがうの?
- 配列やリストを使わないとダメなの?
- なんで「1番目」「2番目」って書かないといけないの?
見た目もやることも、ちょっとむずかしそうに見えますよね。
でも、配列やリストは「データをたくさんまとめて入れておける便利なしくみ」です。
ひとつずつ変数を作らなくても、たくさんのデータをまとめて管理できます。
この記事では、スクラッチ(Scratch)の「リスト」を使いながら、「どうやって作るの?」「どうやって中身を使うの?」を、やさしく説明していきます。
なお、この記事は「変数」が分かることを前提に進めます。
もし変数についてまだよく分からない場合は、先に「【子ども向け】変数の使い方を学ぼう!スクラッチ(Scratch)でわかりやすく解説」を読んでみてくださいね。
配列・リストとは
配列(はいれつ)やリストは、同じ種類のデータをたくさん まとめて あつかうための しくみです。
それぞれの項目(要素(ようそ)といいます)は、配列やリストの名前と「何番目か」をあらわす番号で区別します。
この番号のことを添字(そえじ)やインデックスと呼びます。
たとえば、変数は1つのデータだけを入れられる箱でした。
でも、もし10人分の点数を保存したいとき、変数を10個も作るのは大変ですよね。
そこで登場するのが「配列」や「リスト」です。
変数が「1つの箱」だとしたら、配列やリストは「たくさんの引き出しがついたタンス」のようなもの。
タンスの中にはたくさんの引き出し(要素)があり、「1番目の引き出しにハサミを入れる」「2番目の引き出しから紙を取り出す」といったように、データを入れたり取り出したりできます。
- タンス → 配列・リスト
- 引き出し → 要素
- 引き出しの番号 → 添字・インデックス
- 中に入っているもの → データ
配列とリストのちがい
配列もリストも、「複数のデータを まとめて あつかう」しくみという点は同じです。
データの保管の仕方にちがいがありますが、基本的な考え方はほとんど同じです。
スクラッチのリストの使い方
スクラッチではリストを使って、たくさんのデータを まとめて あつかうことが できます。
ここでは、実際にリストを作って「追加」「削除」「参照」などの基本の使い方を確認していきましょう。
リストを作る
まずはリストを作ってみましょう。
1.変数カテゴリにある「リストを作る」をクリック
2.リスト名を入力して「OK」をクリック
- すべてのスプライト用:ステージとすべてのスプライトで使える
- このスプライトのみ :このリストを作ったスプライトだけ使える
3.からっぽのリストができました
リストのステージモニターと、リストをあつかうブロックが出てきます。
長さは項目(要素)の数を表しています。
手動でリストを編集する
リストは、ステージモニターから直接編集できます。項目の中をクリックすると、自由に書きかえられます。
他のプログラミング言語では、添字が0から始まるものもあります。
項目を追加する
左下の「+」をクリックすると、リストの一番後ろに項目を追加できます。
項目を挿入する
項目をクリックしてEnterキーをおすと、選んだ項目の後ろに項目を入れられます。
また、ShiftキーをおしながらEnterキーをおすと、選んだ項目の前に入れられます。
項目を削除する
項目を選んで、右にある「×」をクリックすると、項目を消せます。
プログラムでリストを編集する
次に、プログラムの中でリストを操作してみましょう。
「(なにか)をリスト▼に追加する」ブロック
リストの一番後ろに項目を追加できます。
「リスト▼の1番目に(なにか)を挿入する」ブロック
指定した位置に項目を入れられます。
「リスト▼の1番目を(なにか)で置き換える」ブロック
指定した位置の項目の内容を置きかえることができます。
「リスト▼の1番目を削除する」ブロック
指定した位置の項目を消すことができます。
「リスト▼のすべてを削除する」ブロック
リストの項目をすべて消すことができます。
リストのデータを参照する
リストに保存したデータは変数と同じように、内容を表示したり、計算などに使えます。
「リスト▼の1番目」ブロック
指定した位置の項目の内容を返します。
「リスト▼中の(なにか)の場所」ブロック
リストの1番目から順番に(なにか)とぴったり合う項目を探し、見つかった項目の添字を返します。
(なにか)がリストに複数あった場合、一番最初にあった項目の添字を返します。
リストに(なにか)がなかった場合、0を返します。
「リスト▼の長さ」ブロック
リストの長さ(項目の数)を返します。
「リスト▼に(なにか)が含まれる」ブロック
リストの中に、(なにか)とぴったり合う項目があるか調べます。
1つでもぴったり合う項目があった場合真(True)を返し、なかった場合は偽(False)を返します。
真と偽って何?ってことですが、カンタンに言うと
- 真はあったよ
- 偽はなかったよ
という意味です。
真偽値については「論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
読み込みと書き出し
スクラッチのリストは、外部ファイルとして保存(書き出し)したり、あとから読み込んだりすることもできます。
リストを右クリックすると、「読み込み」「書き出し」というメニューが表示されます。
- 読み込み → 保存したファイルを読み込んで、リストに入れ直す
- 書き出し → リストの中身をテキストファイルとして保存する
これを使えば、いったん作ったデータを別のプロジェクトでも使えるようになります。
配列・リストを使うメリット
では、リストを使うと何が便利なのでしょうか?
ここでは「1週間分の気温の平均を出す」プログラムを例にして考えてみましょう。
変数を7個使う場合(イヌ)
リストを使わない場合、1日ごとに変数を作ってデータを入れる必要があります。
これらを全部足して7で割れば平均が出せますが、プログラムは長くなってしまいます。
また、日数が増えると変数も増やさなければいけません。
リストを使う場合(ネコ)
これなら、データが何個あっても同じプログラムで動きます。
つまり、データの数が変わってもプログラムを変えなくていいことが、リストの一番いいところです。
もしも項目の数が増えたら
もし、平均を出す期間を1週間分から1ヶ月分にしたくなったら どうでしょうか?
- 変数で作った場合:
30個の変数を追加して、計算式もすべて書きかえる必要があります。
かなり大変です。 - リストで作った場合:
新しいデータをリストに追加するだけでOK。
平均を出すプログラムはそのまま使えます。
リストを使うと、データが増えても楽に対応できるのです。
プログラムを短く、わかりやすくできるのも大きなポイントです。
まとめ
配列やリストは、同じ種類のデータをたくさん まとめて あつかうための しくみです。
それぞれの項目(要素)は、配列やリストの名前と「何番目か」をあらわす番号(添字・インデックス)で区別します。
配列・リストを使うと、分かりやすくて変更に強いプログラムになります。
はじめてのときは、「リストってむずかしい!」と感じるのが当たり前です。
でも、ちょっとずつ試していくうちに、「あ、こう使えば便利なんだ!」と気づく時が必ずきます。
あせらず、楽しくチャレンジしていきましょう!
下の記事では、スクラッチのリストを使ったアルファベットを点字に変えるプログラムを紹介しています。よかったら読んでみてください。
























