Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
111 views
in Technique[技术] by (71.8m points)

python - How to print list items which contain new line?

These commands:

l = ["1
2"]    
print(l)

print

['1
2']

I want to print

['1
2']

Is it possible when we generate the list outside of the print() command?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

A first attempt:

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

The solution above doesn't work in tricky cases, for example if the string is "1\n2" it replaces, but it shouldn't. Here is how to fix it:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...