我注意到你可以做两件事来更新字典,并且它们似乎有相同的结果:
a = {}
a.update({'foo': 1})
a = {}
a.update(foo = 1)
两者都会产生如下所示的字典结果:
{'foo': 1}
是否有任何理由更喜欢使用字典或键/值对作为更新方法?它们在功能上是否完全等效,或者是否存在一种语法可能导致的“陷阱”?
使用其中一种而不是另一种可能有不同的原因。例如:
>>> d = {}
>>> d.update(a=2) # looks much cleaner
>>> d.update({'a': 2}) # We need to unnecessarily write a few more characters,
但话又说回来,如果我想更新 str 类型以外的键:
>>> d = {}
>>> d.update(2='a') # Gives a syntax error
>>> d.update({2: 'a'}) # is the only way
此外,您还可以存储dict
,所以如果您需要通过变量更新:
>>> u = {'a': 2}
>>> d = {}
>>> d.update(u) # clean
>>> d.update(**u) # Essentially same as using keyword argument form, but unnecessary
另一种情况是,当您手动更新某些键,但从变量更新其他键时,关键字参数形式更干净、更短:
>>> u = {'a': 2}
>>> d = {}
>>> d.update(b=3, **u)
# Whereas to use `dict` form:
>>> d.update({'b': 3, **u}) # Introduces unnecessary clutter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)