2

機能に問題がありevalます。たとえば、次のようなリストがあります。

list1 = [('a',1), ('b',2), ('c',3)]

タプルの各値を最初の要素に割り当てたいと思います。

for el in list1 :
    eval(el[0]) = el[1]

これどうやってするの?

4

2 に答える 2

12

あなたはこれを行うことができます:

exec('%s = %s' % el)

しかし、しないでください。本当に、しないでください。動的ローカル変数は必要ありません。辞書が必要です。

my_dict = dict(list1)
于 2012-01-11T11:20:50.047 に答える
3

その必要はありませんeval

ビルトインを呼び出すことで、ローカル環境に直接アクセスできますvars。インタラクティブ セッションの例を次に示します。

>>> list1 = [("a", 4), ("b", 8)]
>>> vars().update(dict(list1))
>>> a
4
>>> b
8

ここでvars()は、ローカル変数バインディングを含む dict を返します。唯一のインスタンス (コピーではない) へのポインターを返すため、その場で変更できます ( .update)。

于 2012-01-11T13:36:05.580 に答える