PythonでES6型オブジェクトの構造を解除するにはどうすればよいですか?Python割り当ての破棄
dictionary = {}
dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'
print dictionary
a, b = [dictionary]
print a, b
どうすれば印刷できますかhello goodbye
?
PythonでES6型オブジェクトの構造を解除するにはどうすればよいですか?Python割り当ての破棄
dictionary = {}
dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'
print dictionary
a, b = [dictionary]
print a, b
どうすれば印刷できますかhello goodbye
?
exec()
でオブジェクトの破棄を模倣できます。
[exec("global %s; %s=%s" % (var,var,repr(val)))
for var,val in dictionary.items() if var.isidentifier()]
print(a)
#hello
便宜上、あなたはすべて専門的に非表示にする関数を書くことができます。
def destructure(d):
[exec("global %s; %s=%s" % (var,var,repr(val)))
for var,val in d.items() if var.isidentifier()]
あなたは自分のキーでdictionary
の設定値を抽出する必要があります
dictionary = {}
dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'
print dictionary
a, b = dictionary['a'], dictionary['b']
print a, b
辞書」doesnのキーと値の順序を維持しないでください。これは、辞書のキーや値の順序付けされた結果が必要な場合は、覚えておく必要があることを意味します。
技術的に言えば、コンパイラはLHSの名前を気にしないので、できません。 –
あまりにも悪いですが、本当に素晴らしいES6の機能です。あなたが答えたら、私はそれを受け入れるよ、ありがとう。 – Antoine
@ cricket_007 OPは変数「a」を辞書のキー「a」の値にバインドすることを望んでいます。 – DyZ