2013-02-13 44 views

回答

13

,如果你事先定義詞典d它的工作,並從那裏取出*

>>> d = {} 
>>> d["a"], d["b"] = ("foo","bar") 

其實,你並不需要在RHS這些括號,所以這也將工作:

>>> d['a'], d['b'] = 'foo', 'bar' 
+0

啊,你不需要*。謝謝。 – jsj 2013-02-13 13:29:55

+0

@ trideceth12:出於好奇,你在哪裏得到了'*'的想法? – 2013-02-13 13:32:58

+0

@ trideceth12。不客氣:) – 2013-02-13 13:37:52

0

這只是一個錯字(*)。這工作(在Python 2.7.3中測試):

d = dict() 
d["a"], d["b"] = ("foo", "bar") 
7

其他人已經展示瞭如何解壓字典。然而,回答你的問題「有沒有更好的方法」,我會爭辯說:

d.update(a='foo',b='bar') 

更容易解析。 Admitedtly,如果你有ab這是變量這是不行的,但你可以使用:

d.update({a:'foo',b:'bar'}) 

,我想我還是喜歡這個版本,原因如下:

  • 它可以更好地擴展到多個(> 2)值,因爲它可以更乾淨地分成多行
  • 它使立即清除哪個鍵與哪個值相關聯

如果你有值的2元組,開始而不是它是靜態的,你展示,你甚至可以使用zip

d.update(zip(("a","b"),("foo","bar"))) 

這固然不是像你一樣的其他兩個選項...

...我們剛剛涵蓋了所有3種方式,您可以使用dict.update :)。

+0

這真的很不錯。忘了它。當價值增加時,至少這不會變得難看。 +1 – 2013-02-13 13:43:40

相關問題