Pythonでリストが空かどうかを確認する方法【初心者向け】
Pythonでリストが空かどうかを確認する方法はいくつかあります。その中でも最初に紹介する「if文でリストの真偽値を判定する方法」が、最もPythonic(Pythonらしい書き方)とされており、Pythonコミュニティで最も推奨されるアプローチです。その他の方法も文法的には正しく動作しますが、良い作法とは見なされていません。
この記事では、Pythonでリストが空かどうかを確認する以下の3つの方法を詳しく解説します。
- リストの真偽値(true / false)を判定する方法
- len() 関数を使う方法
- 空のリストと比較する方法
まずは、リストとは何かを簡単におさらいしておきましょう。
Pythonのリストとは?
Pythonのリストは、複数の要素をひとつにまとめて格納するためのデータ構造です。例えば、買い物リストの項目を1つの変数にまとめたい場合、商品ごとに個別の変数を宣言するのではなく、リストとして定義すると便利です。関連する項目を1つのリストにまとめることで、複数の変数を宣言する手間が省け、コードもすっきりします。
grocerylist = ["eggs", "fruits", "kale", "grapefruits"]
このように定義しておけば、買い物リストの中身を確認したいときは、たった1行のprint文で済みます。
print(grocerylist) # ['eggs', 'fruits', 'kale', 'grapefruits']
なお、リストには上記のような文字列だけでなく、ブール値(true / false)や数値、さらにはそれらを組み合わせた値も格納できます。
リストが空かどうかの判定:真偽値を利用する方法
Pythonでは、文字列・タプル・リストといったシーケンス型は、空の場合は false、要素を持っている場合は true として評価されます。
リストを含むすべてのオブジェクトは、ブール値(true または false)として評価でき、その結果を取得できます。リストオブジェクトの場合、空でない限りすべて true と評価されます。この性質を知っておくと、if 文などの条件分岐で非常に役立ちます。評価結果(ここではリストが空かどうか)に応じて、実行する処理を柔軟に切り替えることが可能です。
ourList = []
まず、リストが true と評価されないこと(=空であること)を確認してみましょう。
if not ourList:
print("The list is empty")
# 実行結果:The list is empty
逆に、リストが true と評価されるかどうかを確認することもできます。リストが空でなければ、リストの内容を出力するなどの処理を実行できます。
if ourList:
print("The list is not empty")
# ourListは空なので、この行は実行されず、何も表示されません
if 文にリスト名だけを書くと、Pythonはリストに要素があるかどうかに応じて、自動的に true か false かを評価してくれます。
len() 関数を使う方法
len() 関数を使えば、リストの長さ(要素数)を取得できます。長さを調べるということは、すなわちリストが空かどうかの確認にもなります。ただし、Python公式スタイルガイド(PEP 8)では、空かどうかの判定に len() を使うことは推奨されていません。リストが本来持つ真偽値を使えば、より簡潔で直接的に判定できるためです。len() を使うと、Python内部で余分なチェック処理が発生します。
ourList = []
次の if 文は、「ourList に長さ(要素数)があるかどうか」を判定しています。要素があれば、メッセージが出力されます。
if len(ourList):
print("The list is not empty")
# ourListは空なので、この行は実行されず、何も表示されません
次の if 文は、「ourList に長さがないかどうか」を判定しています。
if not len(ourList):
print("The list is empty")
# 実行結果:The list is empty
また、len() の結果を「0」と比較する方法もあります。
if len(ourList) == 0:
print("The list is empty")
# 実行結果:The list is empty
空のリストと比較する方法
リストを空のリスト([])と直接比較する方法もあります。「何と比較しているのか」をコード上で明示したい場合には分かりやすいでしょう。ただし、この方法もPythonでは推奨されていません。文法的には正しく動作しますが、比較のために不要な空リストを新たに生成し、その後に比較処理を行う必要があるため、無駄が生じます。
ourList = []
if ourList == []:
print("The list is empty")
# 実行結果:The list is empty
まとめ
この記事では、リストが空かどうかを確認する3つの方法を紹介しました。真偽値による判定、len() の使用、そして空リストとの比較です。その中でも最初に紹介した「if 文でリストの真偽値を判定する方法」が、Pythonスタイルガイド(PEP 8)で推奨されている最良の書き方です。Pythonの公式ドキュメントでは、プログラミングスタイルガイドや各バージョンのアップデート内容について、さらに詳しく学ぶことができます。
Pythonについてさらに学びたい方は、Pythonの基礎や学習の始め方に関する記事もぜひ参考にしてください。Happy Coding!
-
Pythonで空のリストを作成する方法|[]とlist()の2つの基本テクニック
Pythonでプログラムを書いていると、「まず空のリストを用意しておいて、あとからデータを追加していきたい」という場面によく出会います。たとえば、forループで条件に合う要素だけを集めるときや、ユーザー入力を順次蓄積するときなどが代表例です。 Pythonで空のリストオブジェクトを作成する方法は、大きく分けて2つあります。1つ目は、代入文で角括弧 [] の中に何も要素を書かない方法。2つ目は、組み込み関数 list() を引数なしで呼び出す方法です。 方法1:角括弧 [] を使って空のリストを作る 最もシンプルで広く使われているのがこの書き方です。角括弧の中を空にして代入するだけで、空のリ
-
Pythonでリストが空かどうかを判定する最良の方法
Pythonでリストが空かどうかを確認する最良の方法Pythonでリストが空かどうかを判定する最も推奨される方法は、not演算子をリストオブジェクトに直接適用することです。Pythonでは、空のリストは「偽(falsy)」として評価されるため、リストが空であれば not 演算子は True を返し、要素が1つでもあれば False を返します。>>> L1 = [] >>> not L1 True >>> L1 = [1, 2] >>> not L1 Falseこの方法はPEP 8(Python公式スタイルガイド)でも推奨