Python 3:用星号表达来解压缩列表

我的例子是:

>>> def f(a, b, c, d): print(a, b, c, d, sep = '&')
>>> f(1,2,3,4)
1&2&3&4
>>> f(*[1, 2, 3, 4])
1&2&3&4

为了彻底理解它,我想查阅有关'*'的文档。

你能建议我在哪里看?


表达式参考中记录了*args调用约定:

如果语法*expression出现在函数调用中,则expression必须计算为可迭代的。 来自这个迭代器的元素被视为它们是附加的位置参数; 如果存在位置参数x1,...,xN,并且expression计算为序列y1,...,yM,则这相当于具有M + N个位置参数x1,...,xN,y1,...的调用。 ..,yM。

因此,由于您使用[1, 2, 3, 4]作为可迭代的表达式,并且没有其他位置参数,因此它被视为M = 0和N = 4的调用,总计为4个位置参数。

因此,您可以将函数作为f(1, 2, *[3, 4])或任何其他可迭代和位置参数的组合来提供,只要迭代次数在定位之后。

链接地址: http://www.djcxy.com/p/53553.html

上一篇: Python 3: starred expression to unpack a list

下一篇: Print range of numbers on same line