配列
Array / List
概要(サマリー)
配列とは、複数のデータを順番つきでまとめて管理するための、番号で取り出せる入れ物のことである。
たとえば「りんご」「みかん」「ぶどう」という複数の値を、1つずつ別の変数に分けるのではなく、ひとまとめで扱えるようにする仕組みである。「買い物リスト」や「出席番号つきの名簿」のように、並んだデータを順番で管理するイメージを持つと分かりやすい。
JavaScriptでは Array、Pythonでは list という名前でよく使われる。AIを使ったアプリやWeb開発でも、取得した複数のデータを一覧表示したり、順番に処理したりするときに非常によく登場する。
詳細解説
配列 / リストとは何か
配列(Array)やリスト(List)とは、複数の値をまとめて入れておけるデータ構造のことである。
1つの変数が「1個の値を入れる箱」だとすれば、配列やリストは「複数の値を順番に並べて入れておける箱の集まり」のようなものだと考えると分かりやすい。
たとえば、果物の名前を3つ管理したいとする。
- りんご
- みかん
- ぶどう
これを fruit1、fruit2、fruit3 のように別々の変数に入れることもできる。しかし数が増えると管理が大変になる。そこで、まとめて1つのグループとして扱えるようにしたものが配列やリストである。
なぜ配列が必要なのか
もし複数の値を毎回バラバラの変数で管理すると、次のような問題が起きやすい。
- 数が増えると整理しづらい
- 順番に処理しにくい
- 一覧表示しにくい
- 追加や削除に弱い
- 同じ処理を何度も書きやすい
たとえば、商品一覧、ユーザー一覧、チャット履歴、検索結果、AIの返答候補など、実際のアプリでは「複数のデータをまとめて扱いたい」場面が非常に多い。
配列を使えば、100件の商品でも、1,000件の検索結果でも、1つのまとまりとして扱える。これにより、一覧表示、絞り込み、並べ替え、集計などの処理がしやすくなる。
JavaScriptでの配列の例
JavaScriptでは、配列は角かっこ [] を使って書くことが多い。
const fruits = ["りんご", "みかん", "ぶどう"];
console.log(fruits[0]); // りんご
console.log(fruits[1]); // みかん
この例では、fruits という配列の中に3つの文字列が入っている。fruits[0] のように番号を指定すると、特定の位置の値を取り出せる。
この位置を表す番号をインデックスと呼ぶ。JavaScriptでは、最初の要素は 1 ではなく 0 から始まる。
Pythonでのリストの例
Pythonでは、同じような仕組みを list と呼ぶ。
fruits = ["りんご", "みかん", "ぶどう"]
print(fruits[0]) # りんご
print(fruits[1]) # みかん
Pythonのリストも、複数の値を順番つきでまとめられる。JavaScriptの配列と同じように、最初の要素は 0 番目として取り出す。
初心者の段階では、JavaScriptの配列とPythonのリストはどちらも「複数データを順番つきでまとめる入れ物」と理解すればよい。ただし、細かいメソッド名や動作は言語ごとに異なる。
0から始まるインデックスに注意する
配列やリストでは、入っている値を位置で管理する。この位置をインデックスと呼ぶ。
多くのプログラミング言語では、インデックスは 0 から始まる。
const colors = ["red", "green", "blue"];
console.log(colors[0]); // red
console.log(colors[2]); // blue
この配列には3つの値が入っているが、最後の要素は colors[3] ではなく colors[2] である。
初心者がよく間違えるのは、「3個あるから3番目まである」と考えてしまうことだ。実際には、3個の配列のインデックスは 0、1、2 になる。
配列とリストは同じもの?
初心者向けの説明では、「配列」と「リスト」はかなり近い意味で使われることが多い。どちらも複数のデータをまとめる仕組みだからである。
ただし、厳密には言語や文脈によって違いがある。
- 配列(Array)
言語によっては、同じ型の値を連続した領域に並べる固定長の仕組みを指すことがある。JavaScriptのArrayは、あとから値を追加・削除しやすい柔軟な配列である。 - リスト(List)
値を順番つきで並べる柔軟なデータ構造として使われることが多い。Pythonでは標準的な複数データの入れ物がlistである。
最初は、厳密な内部構造よりも「複数の値を順番つきでまとめる入れ物」として理解するのが実用的である。
配列でよく行う操作
配列やリストでは、次のような操作がよく行われる。
値を追加する
JavaScriptでは、末尾に値を追加するときに push() を使うことがある。
const fruits = ["りんご", "みかん"];
fruits.push("ぶどう");
console.log(fruits); // ["りんご", "みかん", "ぶどう"]
Pythonでは append() を使うことが多い。
fruits = ["りんご", "みかん"]
fruits.append("ぶどう")
print(fruits) # ["りんご", "みかん", "ぶどう"]
順番に処理する
配列やリストは、繰り返し処理と相性がよい。
const fruits = ["りんご", "みかん", "ぶどう"];
fruits.forEach((fruit) => {
console.log(fruit);
});
この例では、配列の中身を1つずつ取り出して、同じ処理を実行している。一覧表示や集計処理では、この考え方がよく使われる。
必要な形に変換する
配列の各要素を別の形に変換したいときは、JavaScriptでは map() がよく使われる。
const prices = [100, 200, 300];
const pricesWithTax = prices.map((price) => price * 1.1);
console.log(pricesWithTax);
このように、複数の値に同じ処理をまとめて適用できるのも、配列の大きな強みである。
APIやJSONと配列の関係
Webアプリでは、外部のAPIから複数データを受け取る場面がよくある。そのとき、レスポンスの中に配列が含まれていることが多い。
たとえば、商品一覧を返すAPIでは、次のようなJSONが返ることがある。
[
{ "id": 1, "name": "ノート", "price": 120 },
{ "id": 2, "name": "ペン", "price": 80 },
{ "id": 3, "name": "消しゴム", "price": 60 }
]
この例では、全体が配列で、その中に商品を表すオブジェクトが複数入っている。
実際の開発では、「オブジェクトを複数並べた配列」が非常によく出てくる。商品一覧、ユーザー一覧、投稿一覧、チャット履歴などは、この形で扱われることが多い。
配列とオブジェクトの違い
配列とオブジェクトは、どちらも複数のデータをまとめるために使われるが、得意なことが違う。
| 種類 | 管理のしかた | 例 |
|---|---|---|
| 配列 / リスト | 順番で管理する | 1番目の商品、2番目の商品 |
| オブジェクト | 名前つきの項目で管理する | 商品名、価格、画像URL |
たとえば、商品名だけを複数並べるなら配列が向いている。
const productNames = ["ノート", "ペン", "消しゴム"];
一方で、1つの商品について「名前」「価格」「在庫」などをまとめたいなら、オブジェクトが向いている。
const product = {
name: "ノート",
price: 120,
stock: 30
};
実際の開発では、次のようにオブジェクトを複数並べた配列として扱うことが多い。
const products = [
{ name: "ノート", price: 120 },
{ name: "ペン", price: 80 }
];
配列を使うときの注意点
配列やリストは便利だが、初心者がつまずきやすい点もある。
まず、インデックスが0から始まることに注意が必要である。最後の要素を取り出すときに、要素数とインデックスを混同しやすい。
次に、順番が意味を持つ場合は、追加・削除・並べ替えに注意する。途中の要素を消すと、後ろの要素の位置がずれることがある。
また、配列の中に何が入っているかを意識することも重要である。文字列だけの配列なのか、数値だけの配列なのか、オブジェクトの配列なのかによって、取り出し方や処理の書き方が変わる。
最後に、データ量が非常に多い場合は、無理に全部を一度に表示したり処理したりすると、画面が重くなることがある。必要に応じてページ分け、絞り込み、少しずつ読み込む設計も考える。
AIコーディングとの関係
AIを使った開発でも、配列やリストは非常によく登場する。
たとえば、次のようなデータは配列として扱われることが多い。
- 複数の回答候補
- 検索結果一覧
- 会話履歴
- APIレスポンスの一覧データ
- 画像URLの集まり
- 商品や記事の一覧
AIが生成したコードに配列やリストが出てきたとき、「複数データをまとめているんだな」と理解できるだけでも、コードの読みやすさがかなり変わる。
AIに依頼するときは、次のように具体的に伝えるとよい。
商品データの配列を受け取り、名前と価格を一覧表示するJavaScriptコードを書いてください。
各商品は { name, price } の形のオブジェクトとして配列に入っています。
また、AIが書いた配列処理では、次の点を確認するとよい。
- 最初の要素を
0番目として扱っているか - 配列の中身の形を正しく想定しているか
- 空の配列だった場合にエラーにならないか
- APIの返すデータ形式とコードの想定が合っているか
map()、filter()、forEach()などの使い分けが意図に合っているか
よくある勘違い
配列の最初は1番目だからインデックスも1?
多くの言語では違う。人間の感覚では「1番目」と言いたくなるが、JavaScriptやPythonでは最初の要素のインデックスは 0 である。3個の要素がある配列なら、インデックスは 0、1、2 になる。
配列とオブジェクトは同じもの?
同じではない。配列は順番で管理するのが得意で、オブジェクトは名前つきの項目で管理するのが得意である。実際の開発では、オブジェクトを複数並べた配列として一緒に使われることが多い。
配列には同じ種類のデータしか入れられない?
言語による。JavaScriptやPythonでは、文字列、数値、オブジェクトなどを混ぜて入れることもできる。ただし、混ぜすぎるとコードが読みにくくなり、バグの原因になりやすい。実務では、同じ形のデータをそろえて入れることが多い。
配列はデータベースの代わりになる?
ならない。配列はプログラム内で複数データを扱うための入れ物であり、永続的な保存や検索、同時アクセス管理はデータベースの得意分野である。一時的な一覧処理には配列、長期保存や検索にはデータベース、というように役割が違う。
まとめ
- 配列 / リストは、複数のデータを順番つきでまとめて管理するための入れ物である。
- JavaScriptでは
Array、Pythonではlistとしてよく使われる。 - 配列の要素はインデックスで取り出し、多くの言語では最初のインデックスが
0である。 - APIの一覧データやJSONでは、オブジェクトを複数並べた配列がよく登場する。
- AIに配列処理を頼むときは、配列の中身の形、空配列への対応、繰り返し処理の意図を確認するとよい。
情報ソース
- MDN Web Docs - Array
- MDN Web Docs - Array - JavaScript
- MDN Web Docs - Indexed collections
- Python Documentation - Data Structures
より詳しくAIに聞いてみよう
- 配列とリストとは何かを、中学生でもわかるように説明してください。
- 配列の番号が0から始まる理由を、初心者向けに説明してください。
- 配列とオブジェクトの違いを、具体例つきで教えてください。
- JavaScript と Python で配列 / リストがどう違うかを、やさしく説明してください。
- APIで取得した複数データを配列として扱う例を見せてください。