2014-02-17 61 views
1

我試圖用一個列表作爲參數,使用:傳遞一個列表作爲幾個參數

>>> l = [1,2,3] 
>>> print(*l) 

我得到了一個錯誤:

File "<stdin>", line 1 
t* 
^ 
SyntaxError: invalid syntax 

我使用python 2.7:

>>> import sys 
>>> print sys.version 
2.7.3 (default, Jan 2 2013, 13:56:14) 
[GCC 4.7.2] 

我錯過了什麼? 謝謝! :)

+3

我們需要更多的上下文。您發佈的錯誤與您展示的代碼不符。 – user2357112

+0

你的實際用例是什麼? – msvalkon

+0

是的,我很抱歉,我已經貼了錯誤的錯誤: 文件「」,1張線 打印(* 1) 語法錯誤:無效的語法 – Maxx

回答

3

默認情況下,print不是一個函數在Python 2.7中。給定的模塊中改用語句的功能,使用未來的語句:

from __future__ import print_function 

這需要去在你的文件的頂部,這不是一個未來的語句中的任何代碼之前(或模塊docstring),因爲編譯器需要首先查看將來的語句,以便根據未來的語句以不同的方式編譯模塊的其餘部分。

2

print不是Python 2.7中的函數。這是一個聲明。所以,你應該做的

print l   # [1, 2, 3] 

如果你想在Python 2.7使用print作爲一個功能,您應該從__future__進口print_function,這樣

from __future__ import print_function 
l = [1,2,3] 
print(l)   # [1, 2, 3] 
print(*l)   # 1 2 3 
+0

是的,這就是它謝謝! :-) – Maxx

0

如果你想使用print作爲一個功能,那麼你必須使用__future__或升級蟒蛇3+

0

這是你要搜索的內容?

>>> l = [1, 2, 3] 
>>> def x(*args): 
...  print args[0] 
...  print args 
>>> x(*l) 
1 
(1, 2, 3) 

如果是的話,還需要在Python documenation看看Arbitrary Argument Lists