Python でリストが空かどうかを確認する方法 (Python の真理値)

Python でリストが空かどうかを確認する最も Python 的な方法を学びます。暗黙的なブール チェックと長さの比較を比較します。

エディターでこのソリューションを試してください

概要

Python 開発では、リストの内容を読み取り、変更、または処理する前に、リストに要素が含まれているかどうかを確認する必要があることがよくあります。括弧を使用して空のリストの要素 (例: `my_list[0]`) にアクセスすると、`IndexError` が発生し、プログラムの実行が停止します。したがって、アプリケーションの安定性には、クリーンで防御的なチェック パターンを実装することが不可欠です。

リストが空かどうかを確認する最も Python らしい方法は、暗黙的なブール値 (真偽) を使用することです。 Python では、空のコレクション (リスト、辞書、タプル、セットを含む) はブール値コンテキストで「False」と評価されますが、データが入力されたコレクションは「True」と評価されます。 「if not my_list:」の記述は直接的で可読性が高く、PEP 8 ガイドラインに準拠しています。

リストの長さをゼロと比較する (例: `if len(my_list) == 0:`) か、リストを空のリスト リテラルと直接比較する (例: `if my_list == []:`) ことも機能しますが、これらのアプローチは簡潔でなく、わずかに遅くなる可能性があるため、一般的に推奨されません。 Python に組み込まれた真理値テストを採用すると、コードがよりクリーンで効率的になります。

コードと実行の出力

このスクリプトは、Python でリストが空かどうかを確認するさまざまな方法を示します。

empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
端子出力
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

段階的な実装

  • if not my_list: と書いて、リストが空かどうかを確認します (最も Python 的なアプローチ)。
  • if my_list: と書いて、リストに 1 つ以上の要素が含まれているかどうかを確認します。
  • 空かどうかを確認するために len(my_list) == 0 または my_list == [] を使用することは避けてください。

よくある質問

「if len(my_list) == 0」より「if not my_list」が優先されるのはなぜですか?

これは、len() 関数の検索と整数比較の呼び出しを回避するため、より読みやすく、慣用的で、わずかに高速です。

このチェックは辞書やタプルなどの他のコレクションに対しても機能しますか?

はい、まったく同じ真実性ルールが、空の辞書 ({})、空のタプル (())、空のセット (set())、および空の文字列 ("") に適用されます。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。