簡體   English   中英

為Python 2解壓縮打印列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM