[英]Unpacking a list in print for Python 2
我有理解为什么解包不适用于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)
join ''.join(l)
因为print
不是Python 2中的函数; 如果它不是函数,则无法解压缩列表并将其作为位置参数提供。
您需要从__future__
导入print_function
以支持此操作:
>>> from __future__ import print_function
现在拆包是可能的:
>>> l = ['a', 'b', 'c']
>>> print(*l, sep='')
abc
您有两种选择:
转换为字符串并手动连接空格:
print ''.join(map(str, l))
使用print()
函数 ,使用from __future__
import禁用print
语句 :
from __future__ import print_function print(*l, sep='')
或通过__builtin__
模块访问该函数直接调用该函数:
import __builtin__ print_function = getattr(__builtin__, 'print') print_function(*l, sep='')
Python 2和3中都提供了相同的功能,但在Python 2中,如果没有首先禁用关键字,则无法直接使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.