Suppose I have a multi-line string, where lines are separated with \n
symbol. What would be my options to merge the lines together in a single lengthy string? I have only the following mind:
s = """Text line
another text line
and another long text line"""
s = s.replace('\n', '')
print(s)
CodePudding user response:
Here are some Options
s = """Text line
another text line
and another long text line"""
#option 1
s1 = s.replace('\n', ' ')
#option 2
s2 = s.split('\n')
s2= " ".join(s2)
#option 3
s3 = s.splitlines()
s3 = " ".join(s3)
#option 4
import re
s4 = re.sub('\n', ' ', s)
print(s4)
CodePudding user response:
You can use str.translate()
to remove the '\n'
s, or any other character. Provide translate()
with a dict mapping Unicode ordinals of the characters you want to replace to the characters you want to replace them with. In your case:
s.translate({ord('\n'): None})
From `help(str.translate):
Help on built-in function translate: translate(table, /) method of builtins.str instance Replace each character in the string using the given translation table. table Translation table, which must be a mapping of Unicode ordinals to Unicode ordinals, strings, or None. The table must implement lookup/indexing via __getitem__, for instance a dictionary or list. If this operation raises LookupError, the character is left untouched. Characters mapped to None are deleted.
Update: I'm not suggesting that str.translate()
is the best or most appropriate solution to the problem, just an option. I think str.replace()
is the natural solution here.