use*_*781 7 python printing python-2.7 python-3.x
我在理解为什么解压缩不能与Python 2.7中的list和print语句一起使用时遇到问题:
>>> l=['a', 'b', 'c']
>>> print (*l, sep='')
Run Code Online (Sandbox Code Playgroud)
Python 3.x工作正常并打印:
abc
Run Code Online (Sandbox Code Playgroud)
但是,Python 2.7引发了一个错误:
print (*l, sep='')
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我怎样才能使它适用于Python 2.7?
我知道我可以使用join来代码编写: ''.join(l)
因为print它不是Python 2中的函数; 如果它不是函数,则无法解压缩列表并将其作为位置参数提供.
您需要导入print_functionfrom __future__才能支持此功能:
>>> from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)
现在拆包是可能的:
>>> l = ['a', 'b', 'c']
>>> print(*l, sep='')
abc
Run Code Online (Sandbox Code Playgroud)
您有两个选择:
转换为字符串并手动加入空格:
print ''.join(map(str, l))
Run Code Online (Sandbox Code Playgroud)通过使用禁用语句的导入来使用print() 函数:from __future__print
from __future__ import print_function
print(*l, sep='')
Run Code Online (Sandbox Code Playgroud)
或通过__builtin__模块访问它直接调用该函数:
import __builtin__
print_function = getattr(__builtin__, 'print')
print_function(*l, sep='')
Run Code Online (Sandbox Code Playgroud)
相同的函数在 Python 2 和 3 中都可用,但在 Python 2 中,如果不先禁用关键字,就不能直接使用它。
| 归档时间: |
|
| 查看次数: |
3325 次 |
| 最近记录: |