【发布时间】:2020-03-03 07:01:45
【问题描述】:
来自dict.update() 文档字符串:
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
[E, ]**F 是什么意思?
【问题讨论】:
标签: python dictionary syntax
来自dict.update() 文档字符串:
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
[E, ]**F 是什么意思?
【问题讨论】:
标签: python dictionary syntax
update 可以接受现有的字典(或可迭代的键/值对)作为其可选的位置参数[E, ],以及其他显式键/值对作为关键字参数**F。
例如:
>>> d = {'a': 1}
>>> e = {'b': 2}
>>> d.update(e, c=3) # dict positional argument
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> d.update([('d', 4), ('e', 5)], f=6) # iterable positional argument
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
>>> d.update(g=7) # no positional argument
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}
【讨论】:
[E,] 表示E(以及将其与任何后续关键字参数分开的逗号)是可选的,**F 表示零个或多个关键字参数。这些字母本身并没有任何意义。 d.update(e,) 是合法的,虽然很少写。 d.update(,c=3) 以逗号开头,是不合法的,这就是为什么逗号在[...] 和E 内的原因。
E,也需要逗号,但这不是合法的Python语法。
D.update(E=None, / **F)之类的东西吗?可能。文档字符串现在只是使用非正式的类似于 ABNF 的表示法。