将列表作为多个参数传递

时间:2014-02-17 10:19:22

标签: python arguments

我正在尝试使用列表作为参数,使用:

>>> 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]

我错过了什么? 谢谢 ! :)

4 个答案:

答案 0 :(得分:3)

默认情况下,print不是Python 2.7中的一项功能。要使用函数而不是给定模块中的语句,请使用future语句:

from __future__ import print_function

这需要在任何未来语句(或模块docstring)的代码之前放在文件的顶部,因为编译器需要先查看将来的语句,以便以不同方式编译模块的其余部分关于未来的声明。

答案 1 :(得分:2)

print不是Python 2.7中的函数。这是一份声明。所以,你应该做

print l           # [1, 2, 3]

如果你想在{...}中使用print作为函数,你应该从print_function导入__future__,就像这样

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

答案 2 :(得分:0)

如果您想使用print作为函数,那么您必须使用__future__或将python升级到3 +

答案 3 :(得分:0)

这是你在寻找什么?

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

如果是,请查看Python文档中的Arbitrary Argument Lists