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

时间:2014-05-24 17:10:00

标签: python

这些命令:

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

打印

['1\n2']

我想打印

['1
2']

是否可以在print()命令之外生成列表?

4 个答案:

答案 0 :(得分:1)

仅当您打印元素本身(或每个元素)而不是整个列表时:

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

当您尝试仅打印整个列表时,它会打印列表的字符串表示。换行属于单个元素,因此仅在打印该元素时才打印为换行符。否则,您会将其视为\n

答案 1 :(得分:1)

如果你有多个元素

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

答案 2 :(得分:1)

第一次尝试:

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)))

答案 3 :(得分:0)

试试这个:

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