【Python】文字列を変数名に変換する方法

この記事では、Pythonで文字列を変数名に変換する方法について、eval()関数globals()関数locals()関数exec()関数の4つの方法をサンプルコード付きで紹介します。

これらの方法を使うことで、文字列を変数名として使用することができます。

目次から探す

文字列を変数名に変換する方法

プログラミングにおいて、文字列を変数名として使用したい場合があります。

Pythonでは、いくつかの方法を使って文字列を変数名に変換することができます。

以下では、代表的な4つの方法について説明します。

eval()関数を使った変換方法

eval()関数は、与えられた文字列をPythonの式として評価し、結果を返す関数です。

文字列を変数名として使用する場合、eval()関数を使って文字列を評価することで、変数名としての値を取得することができます。

var_name = "my_variable"
value = 10
# eval()関数を使って文字列を変数名に変換する
eval(var_name)  # 結果: 10

eval()関数は、セキュリティ上のリスクがあるため、注意が必要です。

不正なコードが実行される可能性があるため、信頼できるソースからのみ使用するようにしましょう。

globals()関数を使った変換方法

globals()関数は、グローバルスコープ内の変数を辞書として返す関数です。

この関数を使って、辞書内のキーとして文字列を指定することで、変数名としての値を取得することができます。

var_name = "my_variable"
value = 10
# globals()関数を使って文字列を変数名に変換する
globals()[var_name]  # 結果: 10

locals()関数を使った変換方法

locals()関数は、ローカルスコープ内の変数を辞書として返す関数です。

globals()関数と同様に、辞書内のキーとして文字列を指定することで、変数名としての値を取得することができます。

var_name = "my_variable"
value = 10
# locals()関数を使って文字列を変数名に変換する
locals()[var_name]  # 結果: 10

exec()関数を使った変換方法

exec()関数は、与えられた文字列をPythonのコードとして実行する関数です。

文字列を変数名として使用する場合、exec()関数を使って文字列を実行することで、変数名としての値を取得することができます。

var_name = "my_variable"
value = 10
# exec()関数を使って文字列を変数名に変換する
exec(f"{var_name} = {value}")
# 変数名としての値を取得する
my_variable  # 結果: 10

以上が、Pythonで文字列を変数名に変換する方法の一部です。

適切な方法を選択し、プログラムの要件に応じて利用してください。

ただし、eval()関数exec()関数はセキュリティ上のリスクがあるため、注意が必要です。

目次から探す