簡體   English   中英

如何打印包含新行的列表項?

[英]How to print list items which contain new line?

這些命令:

l = ["1\n2"]    
print(l)

打印

['1\n2']

我要打印

['1
2']

當我們在print()命令之外生成列表時是否可能?

第一次嘗試:

l = ["1\n2"]
print(repr(l).replace('\\n', '\n'))

上面的解決方案在棘手的情況下不起作用,例如,如果字符串是"1\\\\n2"它會替換,但它不應該。 以下是修復方法:

import re
l = ["1\n2"]
print(re.sub(r'\\n|(\\.)', lambda match: match.group(1) or '\n', repr(l)))

僅當您打印元素本身(或每個元素)而不是整個列表時:

>>> a = ['1\n2']
>>> a
['1\n2']
>>> print a
['1\n2']
>>> print a[0]
1
2

當您嘗試只打印整個列表時,它會打印列表的字符串表示形式 換行符屬於單個元素,因此僅在打印該元素時才作為換行符打印。 否則,您將看到它們為\\n

如果您有多個元素,您可能應該使用它

>>> test = ['1\n2', '3', '4\n5']
>>> print '[{0}]'.format(','.join(test))
[1
2,3,4
5]

嘗試這個:

s = ["1\n2"]
print("['{}']".format(s[0]))
=> ['1
   2']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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