2014-02-17 3 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 печать (* л) SyntaxError: неверный синтаксис – Maxx

ответ

3

По умолчанию print не является функцией в Python 2.7. Чтобы использовать функцию вместо инструкции в данном модуле, используйте будущее заявление:

from __future__ import print_function 

Это должно идти в верхней части файла, перед любым кодом, который не будущий оператор (или модуль docstring), потому что компилятор должен сначала увидеть будущие утверждения для компиляции остальной части модуля по-разному на основе будущего оператора.

2

print НЕ является функцией в Python 2.7. Это заявление. Таким образом, вы должны сделать

print l   # [1, 2, 3] 

Если вы хотите использовать print как функция в Python 2.7, вы должны импортировать print_function из __future__, как этот

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) 

Если да, также взглянуть на Arbitrary Argument Lists в documenation Python.

Смежные вопросы