1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonにおける変数の初期化方法一覧

Last updated at Posted at 2025-03-02

Python における変数の初期化方法一覧

ふと、初期化の種類について整理しておきたいと思ったので整理しておきます。
Pythonでは変数の初期化方法が多数存在し、用途に応じて適切な方法を選択することが重要です。以下に、変数の型ごとの初期化方法を整理します。

1. None を用いた初期化

x = None
  • : NoneType
  • 用途: 値が未確定であることを明示する
  • 特徴:
    • if x: で False と評価される
    • if x is None: で判定可能

2. 文字列の初期化

x = ""  # 空文字
  • : str
  • 用途: 文字列型として未設定の状態を示す
  • 特徴:
    • if x: で False と評価される
    • 文字列型を前提とした処理で型エラーを避けられる

3. 数値の初期化

x = 0      # 整数型
y = 0.0    # 浮動小数点型
z = 0j     # 複素数型
  • : int, float, complex
  • 用途: 数値計算に使用する変数の初期化
  • 特徴:
    • if x: で False と評価される
    • 数値計算の基準点として利用可能

2025年3月3日
編集リクエストを頂きました。ありがとうございます。
複素数を扱う場合の初期化項目を追加しました。
https://docs.python.org/ja/3/glossary.html#term-complex-number

4. コレクション型の初期化

リスト (list)

x = []
  • : list
  • 用途: 後から要素を追加するリストを初期化
  • 特徴:
    • if x: で False と評価される
    • .append(), .extend() で要素を追加可能

辞書 (dict)

x = {}
  • : dict
  • 用途: キーと値のペアを管理する辞書を初期化
  • 特徴:
    • if x: で False と評価される
    • .get(), .update() で値を管理可能

集合 (set)

x = set()
  • : set
  • 用途: 重複しない値の集合を初期化
  • 特徴:
    • if x: で False と評価される
    • .add(), .remove() で要素の追加・削除が可能

タプル (tuple)

x = ()
  • : tuple
  • 用途: 変更不可なデータ構造を作るとき
  • 特徴:
    • if x: で False と評価される
    • 不変なデータの格納に適している

5. デフォルト値を持つ辞書 (defaultdict)

from collections import defaultdict
x = defaultdict(int)
  • : defaultdict
  • 用途: キーが未設定のときにデフォルト値を返す辞書
  • 特徴:
    • x["unknown"] を参照すると 0(デフォルト値)が返る

6. データクラス (dataclass) を用いた初期化

from dataclasses import dataclass

@dataclass
class Data:
    name: str = ""
    age: int = 0

x = Data()
  • : dataclass
  • 用途: オブジェクトの初期値を設定しやすくする
  • 特徴:
    • 複数の関連する変数をまとめて管理可能

7. 関数 (lambda) の初期化

x = lambda: None
  • : function
  • 用途: 後から動作を定義できるようにする
  • 特徴:
    • x() を実行すると None を返す

8. ダミーオブジェクト (object()) の初期化

x = object()
  • : object
  • 用途: None とは異なるプレースホルダーとしてのオブジェクト
  • 特徴:
    • if x: で True と評価される

9. Ellipsis (...) を用いた初期化

x = ...
  • : EllipsisType
  • 用途: 未実装や仮置きを表す
  • 特徴:
    • if x: で True と評価される

10. クラス (class) のインスタンス初期化

class MyClass:
    def __init__(self):
        self.value = 0

x = MyClass()
  • : MyClass
  • 用途: オブジェクト指向プログラミングでデータを管理する際
  • 特徴:
    • クラスの属性を持つオブジェクトを作成可能

11. bytearray の初期化

x = bytearray()
  • : bytearray
  • 用途: バイナリデータの格納
  • 特徴:
    • if x: で False と評価される

12. memoryview の初期化

x = memoryview(b'')
  • : memoryview
  • 用途: バイナリデータをメモリ上で操作する
  • 特徴:
    • if x: で True と評価される

まとめ

初期化方法 if x: の判定 用途
None NoneType False 値が未定であることを明示
"" str False 文字列型の未設定
0, 0.0, 0j int, float, complex False 数値の初期化
[] list False 可変長リストの初期化
{} dict False キーと値のペアの管理
set() set False 重複しない集合の初期化
() tuple False 変更不可リストの初期化
defaultdict(int) defaultdict False デフォルト値付き辞書
dataclass dataclass True 複数変数の管理
lambda: None function True 動的な関数のプレースホルダー
object() object True None 以外のダミーオブジェクト
... (Ellipsis) EllipsisType True 未実装の記号
MyClass() MyClass True クラスのインスタンス
bytearray() bytearray False バイナリデータ
memoryview(b'') memoryview True バイナリデータのメモリ操作

Python では用途に応じて適切な初期化方法を選択することが重要ですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?