なぜこれが機能しないのですか?:
d["a"], d["b"] = *("foo","bar")
私が達成しようとしていることを達成するためのより良い方法はありますか?
なぜこれが機能しないのですか?:
d["a"], d["b"] = *("foo","bar")
私が達成しようとしていることを達成するためのより良い方法はありますか?
事前に辞書を定義し、そこからd
削除すると機能します。*
>>> d = {}
>>> d["a"], d["b"] = ("foo","bar")
実際、RHS ではこれらの括弧は必要ないため、これも機能します。
>>> d['a'], d['b'] = 'foo', 'bar'
他の人は、辞書に解凍する方法を示しました。ただし、「より良い方法はありますか」という質問への回答として、私は次のように主張します。
d.update(a='foo',b='bar')
解析がはるかに簡単です。確かに、これは変数a
と変数がある場合は機能しませんが、次を使用できます。b
d.update({a:'foo',b:'bar'})
そして、次の理由から、私はまだそのバージョンを好むと思います。
そして、あなたが示すように静的であるのではなく、値の 2 タプルから始めると、次のように使用することもできますzip
:
d.update( zip(("a","b"),("foo","bar")) )
これは確かに他の2つのオプションほど良くありません...
...そして、使用できる3つの方法すべてについて説明しましたdict.update
:)。
それはただのタイプミス ( *
) です。これは機能します(Python 2.7.3でテスト済み):
d = dict()
d["a"], d["b"] = ("foo", "bar")