函数前的Python星号

时间:2016-09-08 03:37:08

标签: python python-2.7 python-3.x opencv

我正在学习本教程:

http://www.pyimagesearch.com/2015/04/20/sorting-contours-using-python-and-opencv/#comment-405768

并且在其中一行中有功能:

fn

我想知道在(cnts, boundingBoxes) = zip(*sorted(zip(cnts, boundingBoxes), key=lambda b:b[1][i], reverse=reverse)) 函数调用之前星号的用途是什么。

2 个答案:

答案 0 :(得分:1)

Asterisk正在拆包运营商:

>>> list(range(3, 6))            # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> list(range(*args))            # call with arguments unpacked from a list
[3, 4, 5]

有关解包运营商的更多信息:

https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists

答案 1 :(得分:0)

  

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