グローバルにように、文字列、整数の割り当て、および()が正常に動作します:Pythonのglobals()を使って辞書変数を更新するにはどうすればよいですか?
>>> globals() {'__builtins__': , '__name__': '__main__', '__doc__': None, '__package__': None} >>> globals()["a"] = 5 >>> a 5 >>> globals() {'__builtins__': , '__name__': '__main__', '__doc__': None, 'a': 5, '__package__': None}
しかし、辞書に代入しようとすると失敗します。
>>> globals()["b['c']"] = 5 >>> globals() {'a': 5, "b['c']": 5, '__builtins__': , '__package__': None, '__name__': '__main__', '__doc__': None} >>> b['c'] Traceback (most recent call last): File "", line 1, in NameError: name 'b' is not defined
これはあっても真である「B」既に辞書として定義されています。
"b ['c']"などのテキスト文字列を指定すると、b ['c']をどのように割り当てるのですか?
'globals()[" [[c '] "] = 5'?これは何をするはずですか? 'b ['c']'という名前の変数はありません。なぜこれを変数名として使用しようとしていますか? –
あなたは何をしようとしているのか分かりませんが、間違った経路を辿ることはほぼ確実です。 –