2015-10-07 21 views
0
>>> 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(*壓縮)用於反轉矩陣,但是在那裏做什麼?它在python中是一個特殊的運算符嗎?解壓縮python列表時會做些什麼?

回答

1

有了這個:

zip(*zipped) 

你告訴蟒蛇與此相同:

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

這個基本的例子。

什麼正是運營商

當作爲函數的參數使用,需要論證的元素和傳遞作爲參數之前展開。

例如:

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

會給你的2³= 8

http://ideone.com/D0R9FB