2013-06-11 41 views
5

我冒險進入python,並且我有一個關於星號的問題。我知道他們正在使用的參數在函數調用,但我已經看到了使用它們的功能卡以外的代碼片段(比方說,在5個等級的元組,拆包他們到變量如:函數調用之外的星號

first, *middle, last = grades

每當我嘗試在這種情況下使用星號/上下文出來的函數調用的參數,我得到的解釋無效的語法。我在這裏失去了一些東西?

回答

10

Python 3中添加擴展的元組支持拆包一個通配符,請參見PEP 3132

*start, tail = ... 
head, *middle, tail = ... 

assignment statements參考文檔:

如果目標列表中包含有星號前綴一個目標,稱爲「主演」的目標:對象必須有至少儘可能多的項目有一個序列是目標列表中的目標,減去一個。序列的第一項從左到右分配給加星標目標前的目標。該序列的最後項目被分配給星標目標之後的目標。然後將序列中剩餘項目的列表分配給加星標的目標(列表可以爲空)。

使用分配在LEF-手側(目標列表)星號的是在Python 2

一個語法錯誤