为Python 2解压缩打印列表

时间:2016-12-08 19:13:39

标签: python python-2.7 python-3.x printing

我在理解为什么解压缩不能与Python 2.7中的list和print语句一起使用时遇到问题:

>>> l=['a', 'b', 'c']
>>> print (*l, sep='')

Python 3.x工作正常并打印:

abc
然而,Python 2.7引发了一个错误:

 print (*l, sep='')
       ^
SyntaxError: invalid syntax

如何使其适用于Python 2.7?

我知道我可以使用join ''.join(l)

进行编码

2 个答案:

答案 0 :(得分:6)

因为print不是Python 2中的函数;如果它不是一个功能,那么解压缩列表并将其作为位置参数是不可能的。

您需要从print_function导入__future__才能支持此功能:

>>> from __future__ import print_function

现在可以拆包:

>>> l = ['a', 'b', 'c']
>>> print(*l, sep='')
abc

答案 1 :(得分:4)

您有两种选择:

  • 转换为字符串并手动连接空格:

    print ''.join(map(str, l))
    
  • 使用from __future__导入功能禁用print 声明,使用print() function

    from __future__ import print_function
    
    print(*l, sep='')
    

    或通过__builtin__ module

    访问该功能直接调用该功能
    import __builtin__
    print_function = getattr(__builtin__, 'print')
    
    print_function(*l, sep='')
    

    Python 2和3中都提供了相同的功能,但在Python 2中,您无法在不首先禁用关键字的情况下直接使用它。