为什么这不起作用?:
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")) )
诚然,这不如其他两个选项好...
...而且我们刚刚介绍了您可以使用的所有 3 种方式dict.update
:)。
这只是一个错字(*
)。这有效(在 Python 2.7.3 中测试):
d = dict()
d["a"], d["b"] = ("foo", "bar")