解压缩python列表时*做什么?

时间:2015-10-07 22:22:21

标签: python

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> zipped = zip(x,y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> *zipped
  File "<stdin>", line 1
    *zipped
    ^
SyntaxError: invalid syntax
>>> zip(*zipped)
[(1, 2, 3), (4, 5, 6)]  

我在压缩之前对*感到困惑。我知道zip(* zipped)用于反转矩阵,但那里的*是做什么的?它是python中的特殊运算符吗?

1 个答案:

答案 0 :(得分:1)

有了这个:

zip(*zipped)

你告诉python与此相同:

zip(zipped[0],zipped[1],zipped[2])

这个基本的例子。

该运营商究竟是什么

当用作函数的参数时,它接受参数的元素并在作为参数传递之前展开它。

例如:

power = [2,3]
math.pow(*power)

会给你2³= 8的值。

http://ideone.com/D0R9FB