Day 2・データ構造 — AI入出力の正体
リスト/配列 — 順番に並ぶプレイリスト
同じ仲間を順番に一列に並べる入れ物「リスト(配列)」を、プレイリストや行列でつかむ。
まず「たくさんを一つにまとめる箱」から
前回、値をしまう「名前つきの箱」として [[variablclienrequest を学びました。でも、曲を100個しまいたいとき、箱を100個も用意して名前をつけるのは大変です。そこで登場するのが「リスト(または配列)」という、たくさんの物を一列に並べてまとめてしまえる入れ物です。
たとえるなら
リストは音楽の「プレイリスト」です。1曲目、2曲目、3曲目…と順番が決まっていて、上から順に並んでいます。中身(曲)を入れ替えても、追加しても、あくまで「一列に並んだ順番のあるまとまり」であることは変わりません。
リストのいちばん大事な性質は「順番があること」です。プレイリストの1曲目と2曲目を入れ替えたら、流れる順番が変わりますよね。リストも同じで、並び順そのものが意味を持ちます。これは前回ちらっと出てきた [[data-structurclienrequest(データ構造=データの並べ方・しまい方)の、いちばん基本の形です。
playlist = ["レモン", "夜に駆ける", "Pretender"]
// イメージ:
// 0番目 -> "レモン"
// 1番目 -> "夜に駆ける"
// 2番目 -> "Pretender"数えはじめは「0」から
多くの言語で、リストの1つ目は「1番目」ではなく「0番目(ゼロ番目)」と数えます。エレベーターで言えば1階が「0」から始まる感覚です。最初は戸惑いますが、「最初は0」とだけ覚えておけば十分です。AIが作ったコードで list[0] と出てきたら「あ、先頭のことね」と読めます。
箱をバラバラに用意
曲ごとに別々の変数。数が増えると管理不能。
song1 = "レモン"
song2 = "夜に駆ける"
song3 = "Pretender"
// 100曲あったら song100 まで…?リストで一つにまとめる
1本のリストに全部入れる。順番に取り出せる。
songs = ["レモン", "夜に駆ける", "Pretender"]
// 何曲あっても songs 1つで扱えるリストがあると、「上から1つずつ順番に処理する」ことができます。これは前回学んだ (処理の流れ)の「くり返し」と相性ばつぐんです。プレイリストを1曲目から順に再生していくのと同じで、「リストの中身を1つずつ取り出して、全部に同じことをする」という書き方は、プログラムでいちばんよく出てくる形です。
- リスト(配列)= 同じ仲間を一列に並べてまとめる入れ物
- いちばんの特徴は「順番があること」(プレイリストの曲順)
- 数えはじめは多くの場合「0」から
- 1つずつ順番に取り出して処理する、が定番の使い方
AIにはこう頼む
「商品名のリストを受け取って、1つずつ画面に表示するコードを書いて」のように、「リスト」という言葉を使って頼めます。返ってきたコードに [ ] や for(くり返し)が見えたら、「複数のものを順番に扱っているんだな」と読めればOKです。
なぜ大事か
AIやWebサービスが「複数の結果」を返すとき、その正体はほぼ必ずリストです。検索結果10件、おすすめ商品5個、チャットの履歴——全部リスト。この形を知っているだけで、AIの出力が急に読めるようになります。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
リスト(配列)のいちばんの特徴として最も適切なものはどれ?
多くの言語で songs = ["A", "B", "C"] としたとき、songs[0] が指すのは?
リスト(配列)とは何か、たとえを使って説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。