2015-09-17 2 views
0

Таким образом, вы можете применить переменное количество аргументов из списка к нормальной функции, делая этоКак я могу применить список как переменное число аргументов для встроенной печати python?

someFunc(*[1,2,3]) 

Но это не работает, когда я использовал встроенный в печати

print(*[1,2,3]) 
     ^
SyntaxError: invalid syntax 

Как могу ли я добиться такого же эффекта при печати?

+6

Полу-шуточный ответ: переключитесь на 3.X, где работает этот синтаксис :-) – Kevin

+6

Другая половина: 'от __future__ import print_function' –

+1

https://www.python.org/dev/peps/pep-3105/ – shx2

ответ

4

Проблема в том, что в python до python 3 print является ключевым словом языка, а не функцией, поэтому он не работает одинаково. Если вы хотите, чтобы достичь подобного эффекта, вы можете просто сделать вашу собственную функцию печати

def output(*args): 
    print ' '.join(str(i) for i in args) 

затем использовать output(*[1,2,3])

Или, если ваша версия python2 достаточно недавно (> = 2,6), вы можете сделать

from __future__ import print_function 

, чтобы получить семантику python 3.

+0

Это для всех версий python> = 2.6 –

+1

Cool .. обновил ответ –