为什么这不起作用?:
d["a"], d["b"] = *("foo","bar")
有没有更好的方法来实现我想要实现的目标?
答案 0 :(得分:15)
如果您事先定义字典d
,并从那里删除*
,则会有效:
>>> d = {}
>>> d["a"], d["b"] = ("foo","bar")
事实上,你不需要在RHS上使用这些括号,所以这也有效:
>>> d['a'], d['b'] = 'foo', 'bar'
答案 1 :(得分:7)
其他人已经展示了你如何打开一个字典。但是,在回答你的问题“有更好的方法”时,我认为:
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
:)。
答案 2 :(得分:0)
这只是一个错字(*
)。这有效(在Python 2.7.3中测试):
d = dict()
d["a"], d["b"] = ("foo", "bar")