【问题标题】:Passing a list as several arguments将列表作为多个参数传递
【发布时间】:2014-02-17 10:19:22
【问题描述】:

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

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

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

【问题讨论】:

  • 我们需要更多的上下文。您发布的错误与您显示的代码不匹配。
  • 你的实际用例是什么?
  • 是的,很抱歉我粘贴了错误的错误:文件“”,第 1 行 print(*l) SyntaxError: invalid syntax

标签: python python-2.7 arguments


【解决方案1】:

默认情况下,print 在 Python 2.7 中不是函数。要在给定模块中使用函数而不是语句,请使用未来语句:

from __future__ import print_function

这需要放在文件的顶部,在任何不是未来语句(或模块文档字符串)的代码之前,因为编译器需要首先查看未来语句以根据不同的方式编译模块的其余部分未来的声明。

【讨论】:

    【解决方案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
    

    【讨论】:

      【解决方案3】:

      如果你想使用print作为一个函数那么你必须使用__future__或者升级python到3+

      【讨论】:

        【解决方案4】:

        这是您要搜索的内容吗?

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-27
          • 2017-07-16
          • 2020-08-03
          • 1970-01-01
          • 2011-01-20
          • 1970-01-01
          • 2021-09-02
          相关资源
          最近更新 更多