この記事では、Pythonで文字列を変数名に変換する方法について、eval()関数
、globals()関数
、locals()関数
、exec()関数
の4つの方法をサンプルコード付きで紹介します。
これらの方法を使うことで、文字列を変数名として使用することができます。
文字列を変数名に変換する方法
プログラミングにおいて、文字列を変数名として使用したい場合があります。
Pythonでは、いくつかの方法を使って文字列を変数名に変換することができます。
以下では、代表的な4つの方法について説明します。
eval()関数を使った変換方法
eval()関数
は、与えられた文字列をPythonの式として評価し、結果を返す関数です。
文字列を変数名として使用する場合、eval()関数
を使って文字列を評価することで、変数名としての値を取得することができます。
var_name = "my_variable"
value = 10
# eval()関数を使って文字列を変数名に変換する
eval(var_name) # 結果: 10
不正なコードが実行される可能性があるため、信頼できるソースからのみ使用するようにしましょう。
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()関数
はセキュリティ上のリスクがあるため、注意が必要です。