【Python】None の場合のエラーを防ぐ or [ ]の使い方をわかりやすく解説!

PythonでAPIからデータを取得したり、データベースから値を読み込む際に、値が None だった場合にエラーが発生する問題はよく遭遇します。

その中でも or [] は「Noneの場合に空のリストを返す」「リストに対する操作を安全に実行する」など、簡潔にエラーを防ぐための基本的なテクニックです。

この記事では or [] の基本的な使い方から、活用シーン、注意点までをわかりやすく丁寧に解説します。

or [] とは?

or [] は、Pythonの論理演算子 or を使ったデフォルト値設定のテクニックです。

左側の値が「偽値」(Falsy)の場合に、右側の値(この場合は空のリスト [])を返します。

None は偽値なので、変数が None の時に空のリストが代わりに使用されます。

Pythonでは、None や空のコレクション、0 などは偽値として扱われるため、or [] を使って安全なデフォルト値を設定できます。

基本的な使い方

まずは、None チェックを or [] で解決する基本的なコードを見てみましょう。

このコードでやっていることは:

  1. get_user_hobbies() がNoneを返す可能性がある
  2. or [] でNoneの場合に空のリストを設定
  3. len()for ループが安全に実行される
  4. Noneエラー(AttributeError)が発生しない

これで値がNoneの場合に発生しがちなエラーを防げます。

具体例:辞書のリスト値取得での使い方

or [] は辞書からリスト値を取得する際にもよく使われます。

このように:

  1. dict.get() でキーが存在しない場合にNoneを取得
  2. or [] でNoneを空のリストに変換
  3. リスト操作(連結、内包表記など)が安全に実行

この一連の処理で、存在しないキーに対する安全なリスト操作ができます。

or 〜で使えるデフォルト値の例

Pythonでは、以下のような形式で様々なデフォルト値を指定できます。

用途 書き方の例 説明
空のリスト data or [] Noneや空の場合にリストを返す
空の辞書 config or {} Noneや空の場合に辞書を返す
空の文字列 text or "" Noneや空の場合に文字列を返す
デフォルト数値 count or 0 Noneや空の場合に数値を返す
カスタムデフォルト items or ["default"] カスタムのデフォルト値を指定

デフォルト値は、データの用途や後続処理に応じて適切に選択できます。

or [] を使うときの注意点

空のリストも偽値として扱われることに注意

空のリスト [] 自体も偽値なので、意図しない動作になる場合があります。

この場合は、明示的に None チェックを使います。

0 や False も偽値として扱われることに注意

数値の0やFalseも偽値なので、これらが有効な値として必要な場合は注意が必要です。

可読性とのバランスを考慮

複雑な条件の場合は、or [] よりも明示的な条件分岐の方が読みやすいことがあります。

まとめ

今回はPythonの or [] テクニックについて紹介しました。

  • or [] はNoneや偽値の場合に空のリストを返すシンプルなエラー防止手法
  • 辞書の get() メソッドと組み合わせて、存在しないキーに対する安全な処理が可能
  • リスト操作→エラー防止→安全な処理といった一連の流れも簡潔に実現できる
  • 空のリストや0も偽値として扱われるため、値の性質を理解した上での使用が有効

or [] をマスターすれば、API連携、データ処理、設定ファイル読み込みなど、さまざまな場面でNoneエラーを効率的に防げるようになります。

Pythonでの堅牢なプログラミングを行う実用的なテクニックとして、ぜひしっかり理解しておきましょう。

おすすめの記事