解压缩python列表时*做什么? [重复]

问题描述 投票:0回答:1
>>> 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中的特殊运算符吗?

python
1个回答
1
投票

有了这个:

zip(*zipped)

你告诉python与此相同:

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

对于这个基本的例子。

What does exactly that operator

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

例如:

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

会给你2³= 8的值。

http://ideone.com/D0R9FB

© www.soinside.com 2019 - 2024. All rights reserved.