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

what does * do when unzipping a python list?

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
10
11
12
>>> 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
zip(*zipped)

您告诉python的方法与此相同:

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

对于这个基本示例。

那个接线员具体是什么

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

例如:

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

会给你23=8的值。

http://ideone.com/d0r9fb