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

【Python入門】オブジェクトの属性から辞書(dict)を生成する方法 ― __dict__の使い方

オブジェクトのフィールドからPythonの辞書を作成するには?

Pythonでは、任意のオブジェクトが持つ __dict__ 属性を参照するだけで、そのインスタンスの属性(フィールド)をキーと値のペアにした辞書(dict)を簡単に取得できます。

ここでは、サンプルとして「person」クラスを定義してみましょう。

1. クラスを定義する

>>> class person:
    def __init__(self):
        self.name = 'foo'
        self.age = 20

    def show(self):
        print(self.name, self.age)

このクラスは、nameage という2つのインスタンス変数を持っています。

2. オブジェクトを生成して __dict__ を取得する

次に、このクラスのインスタンスを作成し、その __dict__ 属性を取得してみます。結果は辞書型のオブジェクトとして返されます。

>>> p = person()
>>> d = p.__dict__
>>> d
{'name': 'foo', 'age': 20}

ポイントまとめ

  • __dict__ 属性は、インスタンスの属性名とその値を格納した辞書を返します。
  • 取得した辞書は通常のdictと同様に扱えるため、JSONへの変換やデバッグ出力などに便利です。
  • メソッドやクラス変数は含まれず、基本的にインスタンスごとの属性のみが対象になります。

このように __dict__ を使えば、わずか1行のコードでオブジェクトの中身を辞書形式に変換でき、データのシリアライズやログ出力など、さまざまな場面で活用できます。

  1. Pythonで辞書の中に辞書を定義する方法(ネスト構造の作り方)

    ネストした辞書とはPythonの辞書(dict)オブジェクトはミュータブル(変更可能)です。この特性により、ある辞書オブジェクトを別の辞書の「値」として格納することができます。つまり、キーに関連付けられた値として別の辞書を定義することで、ネストした(入れ子になった)辞書を作成できるのです。ネストした辞書の定義例以下の例では、学生ごとの情報(名前・年齢・科目・GPA)を、それぞれ独立した辞書として保持し、それらを外側の辞書の値にしています。>>> students = { student1: {name: Raaj, age: 23, subjects: [Phy, C

  2. Pythonの辞書からキーを削除する方法を解説!del文・pop()・popitem()の使い分け

    はじめに Pythonの辞書(dict)は、キーと値のペアでデータを管理できる非常に便利なデータ構造です。プログラムの実行中に不要になった要素を削除したい場面は多くありますが、Pythonにはいくつかの削除方法が用意されています。 この記事では、代表的な削除方法であるdel文とpop()メソッドを中心に、それぞれの特徴や使い分けのポイントを実行例とともにわかりやすく解説します。 del文でキーを削除する Pythonのdelキーワードは、ほぼすべてのオブジェクトに対して使用できます。辞書から特定の要素を削除する場合は、delステートメントにキーを指定します。 >>> D1