我在理解为什么解压缩不能与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)
答案 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='')
访问该功能直接调用该功能
import __builtin__
print_function = getattr(__builtin__, 'print')
print_function(*l, sep='')
Python 2和3中都提供了相同的功能,但在Python 2中,您无法在不首先禁用关键字的情况下直接使用它。