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[]
内に値を渡す必要があります。この実装は簡潔ですが、変数が変更されるたびに常に更新する必要があります。
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
- Python で文字列を変数名に変換する
- Python で変数の型をチェックする
- Python のプライベート変数
- Python でクラスグローバル変数を定義する
- Python で値のない変数を宣言する