Python で変数名を出力する

Muhammad Maisam Abbas 2023年1月30日 2022年1月22日
  1. Python の globals() 関数を使用して変数名を出力する
  2. Python で辞書を使用して変数名を出力する
Python で変数名を出力する

このチュートリアルでは、Python で変数名を表示する方法について説明します。

Python の globals() 関数を使用して変数名を出力する

globals() 関数は、現在のグローバルシンボルテーブルのディクショナリを返します。シンボルテーブルは、プログラムの必要な情報をすべて含む、コンパイラによって維持されるデータ構造です。この必要な情報には、変数名、関数、クラスなどが含まれます。

同様に、現在のローカルシンボルテーブルのディクショナリを返す locals() 関数と呼ばれる別の関数があります。ローカルシンボルテーブルには、プログラムのローカルスコープに関連する情報が含まれ、グローバルシンボルテーブルには、プログラムのグローバルスコープに関連する情報が含まれます。ローカルスコープは特定のクラスまたは特定の関数を参照できますが、グローバルスコープはプログラム全体を参照します。globals()locals() 関数の唯一の違いはスコープです。この辞書を検索して、目的の変数の値と一致する値を求めることができます。

次のコード例は、globals() 関数を使用して変数の名前を出力する方法を示しています。

variable = 22
vnames = [name for name in globals() if globals()[name] is variable]
print(vnames)

出力:

['variable']

リスト内包表記を使用して、globals() 関数によって取得されたディクショナリ内の各要素を反復処理し、変数値に一致するアイテムのキーを返しました。戻り値を vnames リスト内に保存し、すべての vnames 要素を表示しました。

Python で辞書を使用して変数名を出力する

上で説明したように、globals() 関数と locals() 関数はどちらも、変数をそれらの値にマップするディクショナリを返します。変数名とそれに対応する値を(キー、値)ペアの形式で含む辞書を作成することで、同じ機能を複製できます。次のコード例は、辞書を使用して変数名を出力する方法を示しています。

variable1 = 22
variable2 = 23
vnames = {22: "variable1", 23: "variable2"}
print(vnames[variable1])

出力:

variable1

変数値をキーとして保存し、対応する変数名を vnames ディクショナリ値として保存しました。特定の変数の名前を出力する必要があるときはいつでも、vnames[] 内に値を渡す必要があります。この実装は簡潔ですが、変数が変更されるたびに常に更新する必要があります。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Variable