Pythonでリストを宣言・初期化する方法|角括弧・list()・内包表記を徹底解説
Pythonでリストを初期化する方法は主に4つあります。角括弧[]を使う方法、list()関数を使う方法、乗算(*)でリストを作成する方法、そしてリスト内包表記を使う方法です。中でも最も一般的なのは、角括弧を使用する方法です。
Pythonのリストとは?基本のおさらい
リストとは、0個以上の要素を順序付きで格納できるデータ構造です。Pythonのリストはミュータブル(変更可能)であるため、作成後も要素の追加・削除・変更を自由に行えます。また、文字列や辞書など、任意の型のデータを混在させて格納することも可能です。
リストを使い始めたばかりの方は、「Pythonでリストを初期化するにはどうすればいいの?」「そもそもPythonのリストはどうやって作るの?」と疑問に思うことがあるでしょう。
この記事ではその疑問にお答えし、Pythonでリストを初期化するさまざまな方法を詳しく解説します。リストの基礎から、角括弧記法、list()関数、リストの乗算、リスト内包表記による初期化方法まで、順を追って見ていきましょう。
Pythonリストの基本をおさらいしよう
リストは、0個以上の要素を格納できるデータ構造です。リスト内の各要素はアイテム(item)と呼ばれます。リストは「Pythonの配列」と呼ばれることもあります。
Pythonでは、リスト内の要素はカンマで区切り、リスト全体を角括弧で囲んで表現します。以下はPythonのリストの一例です。
jobs = ['ソフトウェアエンジニア', 'Webデベロッパー', 'データアナリスト']
このリストには3つの値が含まれています。上で宣言した変数「jobs」を使えば、いつでもこのリストを参照できます。
Pythonでリストを作成する4つの方法
Pythonでリストを初期化するには、角括弧、list()関数、リストの乗算、リスト内包表記のいずれかを使用します。それぞれの特徴は以下のとおりです。
- 角括弧 []:空のリストや、デフォルト値を含むリストを初期化できます。
- list()関数:角括弧と同じ働きをします。初期値を設定したい場合は、list()の中に角括弧と要素を記述します。
- リストの乗算:既存のリストの要素を繰り返した新しいリストを作成できます。
- リスト内包表記:既存のイテラブルオブジェクトの内容をもとに、新しいリストを作成できます。
角括弧でリストを作成する方法
Pythonで空のリストを初期化するには、角括弧またはlist()関数を使用します。ここでは、まず角括弧を使った方法を見ていきましょう。
値を持たない空のリストを作成したい場合、宣言方法は2つあります。1つ目は、値を指定せずに角括弧だけを記述する方法です。以下がその構文の例です。
jobs = [] print(jobs)
実行結果:
[]
何も入っていない角括弧は、空のリストを表します。
デフォルト値を指定したい場合は、角括弧の中に値を追加するだけでOKです。
jobs = ['ソフトウェアエンジニア', 'データアナリスト']
これで、「ソフトウェアエンジニア」と「データアナリスト」という2つの初期値を持つリストオブジェクトが宣言されました。
list()関数でリストを作成する方法
値を持たない空のリストをPythonで作成するもう1つの方法が、list()関数の使用です。以下はlist()関数の使用例です。
jobs = list() print(jobs)
実行結果:
[]
最初の2つの方法はどちらも同じ結果、つまり空のリストを返します。どちらを使うべきかについて厳密なルールはありませんが、一般的にはより簡潔に書ける空の角括弧([])が好まれる傾向にあります。
リストの乗算でリストを宣言する方法
複数の値でリストを初期化する方法の1つが、リストの乗算です。この方法を使うと、あらかじめ決めておいた値を指定した個数だけ持つリストを簡単に作成できます。
例えば、好きな本トップ10を入力するプログラムを作っているとしましょう。入力された本を保存するためのリストを事前に初期化しておきたい場合、次のようなコードが使えます。
favorite_books = [''] * 10 print(favorite_books)
実行結果:
['', '', '', '', '', '', '', '', '', '']
このプログラムは、10個の値を含むリストを作成しました。
コードを分解して確認してみましょう。1行目では乗算の構文を使って、10個の値を持つリストを宣言しています。各アイテムに入る値は ''(空文字列)です。続く行では、Pythonのprint()関数を使ってリストをコンソールに出力しています。
この構文を使えば、任意の値でリストを初期化することもできます。例えば、リストの初期値として10個の「本を選んでください。」という文字列を入れたい場合は、次のコードを使用します。
favorite_books = ['本を選んでください。'] * 10 print(favorite_books)
このコードを実行すると、すべての値が「本を選んでください。」である10個の要素を持つリストが作成されます。コンソールへの出力は次のとおりです。
['本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。']
リスト内包表記でリストを宣言する方法
前のセクションでは、リストの乗算を使ったリストの初期化方法を紹介しました。この方法はデフォルト値を持つリストを手軽に作れるため便利ですが、リスト内包表記でも同様のことが実現できます。
Pythonのリスト内包表記とは、既存のイテラブルオブジェクトをもとにリストを作成できるテクニックです。イテラブルオブジェクトとしては、リストやrange()文、その他の反復可能なオブジェクトが利用できます。
リスト内包表記は、イテレータをもとにリストを定義するためのエレガントでシンプルな手法として広く認知されており、Pythonらしい書き方の代表格ともいえます。
先ほどの例と同じように、「本を選んでください。」という値を10個持つリストを作りたいとしましょう。リスト内包表記を使えば、次のコードで実現できます。
favorite_books = ['本を選んでください。' for i in range(10)] print(favorite_books)
実行結果:
['本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。', '本を選んでください。']
上の例では、リスト内包表記を使ってリストを作成しています。内包表記の核となるのが for i in range(10) というイテレータ部分です。このイテレータによって、「本を選んでください。」という値が10回繰り返されたリストが生成されます。
まとめ
リストの初期化は、Pythonでリストを扱ううえで欠かせない基本操作です。この記事では、角括弧とlist()関数を使った空のリストの初期化方法に加えて、リストの乗算やリスト内包表記を使って、特定の個数の値を持つリストを作成する方法を解説しました。
これであなたも、プロのようにPythonでリストを初期化できるようになったはずです。ぜひ実際にコードを書いて、それぞれの方法の違いを体感してみてください。
Pythonプログラミングについてさらに学びたい方は、初心者向けのPython学習ガイドもあわせて参考にすると良いでしょう。
-
Pythonで変数は宣言不要?動的型付けの仕組みとtype()関数の使い方を解説
結論から言うと、Pythonでは変数を事前に宣言する必要はありません。使いたいタイミングで、いきなり値を代入して変数を使い始めることができます。 以下では、なぜ宣言が不要なのか、その背景にある仕組みを詳しく解説します。 静的型付け言語では変数の宣言が必須 C、C++、Java、C#といった静的型付け言語では、プログラム内で変数を使用する前に、その名前とデータ型を明示的に宣言しなければなりません。コンパイラがこの宣言をチェックし、変数に適切なデータが格納されていることを保証します。 例えばC言語で、整数値を格納するための変数を作りたい場合は、次のように宣言します。 int x; 宣言の後は、この
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>