簡體   English   中英

Python:為什么我不能將元組解壓縮到字典中?

[英]Python: Why can't I unpack a tuple into a dictionary?

為什么這不起作用?:

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')

更容易解析。 無可置疑,如果你有ab變量 ,這不起作用,但你可以使用:

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

我認為我仍然喜歡這個版本,原因如下:

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

如果你從一個2元組的值開始,而不是像你展示的那樣是靜態的,你甚至可以使用zip

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

這肯定不如其他兩個選項好......

...我們剛剛介紹了你可以使用dict.update :)的所有3種方法。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM