为什么这个不起作用?
有没有更好的方法来实现我想要达到的目标?
d["a"], d["b"] = *("foo","bar")
有没有更好的方法来实现我想要达到的目标?
d["a"], d["b"] = *("foo","bar")
如果您提前定义一个字典 d
,并从中删除 *
,它就会起作用:
>>> d = {}
>>> d["a"], d["b"] = ("foo","bar")
实际上,在右手边不需要那些括号,所以这样也可以工作:
>>> d['a'], d['b'] = 'foo', 'bar'
d.update(a ='foo',b ='bar')
更好](https://dev59.com/-m7Xa4cB1Zd3GeqPpmop#14854908) :) - mgilson()
:d['a'], d['b'] = 'foo', 'bar'
- ecatmur其他人已经展示了如何将内容解压缩为字典。然而,针对你的问题“是否有更好的方法”,我认为:
d.update(a='foo',b='bar')
更容易解析。诚然,如果您有a
和b
是变量,那么您可以使用:
d.update({a:'foo',b:'bar'})
如果您从包含两个值的2元组开始,而不是像您展示的那样静态,您甚至可以使用zip
:
d.update( zip(("a","b"),("foo","bar")) )
诚然,这种方式不如其他两种选项...
... 现在我们已经介绍了使用 dict.update
的三种方式 :).
这只是一个打字错误(*
)。这个代码可以运行(在Python 2.7.3中测试过):
d = dict()
d["a"], d["b"] = ("foo", "bar")