这是PEP-448:附加解包概述,这是Python 3.5中的新增功能。
相关的更改日志位于https://docs.python.org/3/whatsnew/3.5.html#pep-448-additional- unpacking- generalizations中:
PEP 448扩展了*
可迭代拆包运算符和**
字典拆包运算符的允许使用。现在可以在函数调用中使用任意数量的拆包:
>>>
>>> print(*[1], *[2], 3, *[4, 5])
1 2 3 4 5
>>> def fn(a, b, c, d):
... print(a, b, c, d)
...
>>> fn(**{'a': 1, 'c': 3}, **{'b': 2, 'd': 4})
1 2 3 4
>>>
>>> *range(4), 4
(0, 1, 2, 3, 4)
>>> [*range(4), 4]
[0, 1, 2, 3, 4]
>>> {*range(4), 4, *(5, 6, 7)}
{0, 1, 2, 3, 4, 5, 6, 7}
>>> {'x': 1, **{'y': 2}}
{'x': 1, 'y': 2}