IT でもよく出てくる「リスト」の意味を掴む。
多義語なので、一つずつ紹介する。これら全部を押さえておけば、次「リストって何なの」となったときも、たぶんどれかが当てはまって理解できるはず。
1: 箇条書き的に並べた書き方のこと
(Before) 普通の文章
多義語なので、一つずつ紹介する。これら全部を押さえておけば、たぶん次「リストって何なの」となったときも、たぶんどれかが当てはまって理解できるはず。
(After) リストで書いたもの
- 多義語なので、一つずつ紹介する
- これら全部を押さえておけば、
- たぶん次「リストって何なの」となったときも、
- たぶんどれかが当てはまって理解できるはず。
※強引な例ですみません
書き方は色々ある
テキストで書くにしても、以下のように色々書けるし、
・多義語なので、一つずつ紹介する
・これら全部を押さえておけば、
・たぶん次「リストって何なの」となったときも、
・たぶんどれかが当てはまって理解できるはず。
- 多義語なので、一つずつ紹介する
- これら全部を押さえておけば、
- たぶん次「リストって何なの」となったときも、
- たぶんどれかが当てはまって理解できるはず。
Word のようなエディタ上でも「番号なしリスト」「番号つきリスト」のような記法が用意されているだろう。
なんでリスト?普通に文章で書けばよくない?
「ただの文章」と「箇条書き的に列挙した情報」を区別した方が何かと便利なので、そうしている。
文章は、特に記事や文書など本格的なものになると、それなりの構造が要る。「段落」や「見出し」もそうだし、「リスト」もその一つ。
一般的なニュアンス
-
・
のような印を先頭につける- 呼び方は色々ある: 「Bullet(バレット、ブレッド、ビュレット)」「ポチ」「黒ポチ」「中黒点」
- 階層性がある
- aaa
- bbb
- bbb
- aaa
- bbb
- aaa
2: チェックリスト、タスクリスト、品目リストなど「項目を並べたもの」
何らかの項目が並んだものをリストと呼ぶことも多い。
たとえば「これらの観点を全部一つずつチェックしろ」を要請するチェックリスト。あるいは自分が行うタスクを列挙したものをタスクリストとか TODO リストとか言ったりする。
文書や Excel でつくられることもある。「項目」なるものが並んでいるものは、何でもリストになりえる。
3: データ構造
データの扱い方をデータ構造という。主にプログラミングのときに使う。
スタックとキューについては以前取り上げた: スタックとキューと FIFO と LIFO を理解する #スタック - Qiita
リストも、データ構造の一つとして言及されることがある。ここで解説しておく。
リスト構造
リスト(List) とは、データ一つ分(要素)を順に繋いだ構造を指す。配列(Array) と呼ぶこともある。
以下はリストが空の状態。
--->
ここに A, B, C というデータをこの順番で入れるとする。
---> [A]--[B]--[C]
Aから始めて、要素単位で連結させていることがわかる。それだけ。
新しくデータを入れるときは、基本的に後ろにつける。これを append という。また、途中に入れる場合は insert(挿入)という。たとえば B の次に D を insert すると、こうなる。
---> [A]--[B]--[D]--[C]
図で書くとシンプルだが、データ構造として実際にプログラミングすると意外と大変だったりする。というのも、各要素は「私の次はこの人です」という情報(ポインター)を持っておかないといけないから。
なので、B の次に D を insert する場合、実は以下のようなことをしている。
- まず最初に A を見る
- A は B ではないので「いや私じゃない」「私の次は B さんなので、そっち見てみて」
- B を見る
- 探しているのも B なので合っている、「私ですね」
- B の次に D を置きたいので、B は「私の次は C なんですけど、D に変えますね」
- (ここまでで A--B--D、まだ C が繋がってない)
- D はまだ次が誰もいないので、C にする
要は、コンピュータ上でちゃんと「リスト」と思しきものを表現したいなら、これくらいちゃんとやらないといけないということ。まあこれはプログラミングの話なので、通常出てくることはない。一方で、プログラミングの文脈だと、リストの話なのに「ポインター」とか「付け替え」とか「アペンド(append)」といった言葉が出たりするが、それはまさにこういうことである。