jsj*_*jsj 7 python dictionary iterable-unpacking
为什么这不起作用?:
d["a"], d["b"] = *("foo","bar")
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现我想要实现的目标?
Roh*_*ain 16
如果您d
事先定义一个字典,并*
从那里删除它,它将起作用:
>>> d = {}
>>> d["a"], d["b"] = ("foo","bar")
Run Code Online (Sandbox Code Playgroud)
实际上,您不需要RHS上的那些括号,因此这也将起作用:
>>> d['a'], d['b'] = 'foo', 'bar'
Run Code Online (Sandbox Code Playgroud)
其他人已经展示了你如何打开一个词典.但是,在回答你的问题"有没有更好的方法"时,我认为:
d.update(a='foo',b='bar')
Run Code Online (Sandbox Code Playgroud)
更容易解析.Admitedtly,如果你有这不起作用a
以及b
它们是变量,但你可以使用:
d.update({a:'foo',b:'bar'})
Run Code Online (Sandbox Code Playgroud)
我认为我仍然喜欢这个版本,原因如下:
如果您从一个2元组的值开始,而不是在显示时保持静态,您甚至可以使用zip
:
d.update( zip(("a","b"),("foo","bar")) )
Run Code Online (Sandbox Code Playgroud)
这肯定不如其他两个选项好......
......我们刚刚介绍了你可以使用的所有3种方法dict.update
:).