機能に問題がありeval
ます。たとえば、次のようなリストがあります。
list1 = [('a',1), ('b',2), ('c',3)]
タプルの各値を最初の要素に割り当てたいと思います。
for el in list1 :
eval(el[0]) = el[1]
これどうやってするの?
機能に問題がありeval
ます。たとえば、次のようなリストがあります。
list1 = [('a',1), ('b',2), ('c',3)]
タプルの各値を最初の要素に割り当てたいと思います。
for el in list1 :
eval(el[0]) = el[1]
これどうやってするの?
あなたはこれを行うことができます:
exec('%s = %s' % el)
しかし、しないでください。本当に、しないでください。動的ローカル変数は必要ありません。辞書が必要です。
my_dict = dict(list1)
その必要はありませんeval
。
ビルトインを呼び出すことで、ローカル環境に直接アクセスできますvars
。インタラクティブ セッションの例を次に示します。
>>> list1 = [("a", 4), ("b", 8)]
>>> vars().update(dict(list1))
>>> a
4
>>> b
8
ここでvars()
は、ローカル変数バインディングを含む dict を返します。唯一のインスタンス (コピーではない) へのポインターを返すため、その場で変更できます ( .update
)。