Python
 Computer >> コンピューター >  >> プログラミング >> Python

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はリストに要素があるかどうかに応じて、自動的に truefalse かを評価してくれます。

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!

  1. Pythonで空のリストを作成する方法|[]とlist()の2つの基本テクニック

    Pythonでプログラムを書いていると、「まず空のリストを用意しておいて、あとからデータを追加していきたい」という場面によく出会います。たとえば、forループで条件に合う要素だけを集めるときや、ユーザー入力を順次蓄積するときなどが代表例です。 Pythonで空のリストオブジェクトを作成する方法は、大きく分けて2つあります。1つ目は、代入文で角括弧 [] の中に何も要素を書かない方法。2つ目は、組み込み関数 list() を引数なしで呼び出す方法です。 方法1:角括弧 [] を使って空のリストを作る 最もシンプルで広く使われているのがこの書き方です。角括弧の中を空にして代入するだけで、空のリ

  2. Pythonでリストが空かどうかを判定する最良の方法

    Pythonでリストが空かどうかを確認する最良の方法Pythonでリストが空かどうかを判定する最も推奨される方法は、not演算子をリストオブジェクトに直接適用することです。Pythonでは、空のリストは「偽(falsy)」として評価されるため、リストが空であれば not 演算子は True を返し、要素が1つでもあれば False を返します。>>> L1 = [] >>> not L1 True >>> L1 = [1, 2] >>> not L1 Falseこの方法はPEP 8(Python公式スタイルガイド)でも推奨