如何摆脱多个空格并考虑换行符
How to get rid of multiple whitespace AND account for a newline
假设我有一个输入 "Hello my name is \n Bill"
my_str = ' '.join(my_str.split())
所以这将加入字母并在我将其全部打印在一行时给我 "Hello my name is\nBill"
。我想要它打印的是:
Hello my name is
Bill
到航站楼。
你的问题是你没有换行符,你有两个 反斜杠 和一个 n
即反斜杠被转义所以拆分后你需要做替换:
In [10]: s = "Hello my name is \n Bill"
In [11]: print(" ".join(s.split()))
Hello my name is \n Bill
In [12]: print(" ".join(s.split()).replace("\n","\n"))
Hello my name is
Bill
或使用.decode("string_escape"):
In [15]: s = "Hello my name is \n Bill"
In [16]: print" ".join(s.split())
Hello my name is \n Bill
In [17]: print(" ".join(s.split()).decode("string_escape"))
Hello my name is
Bill
正如 Kirby 在评论中提到的,如果您正在创建字符串,请不要转义反斜杠,如果数据来自其他来源,请使用上述方法之一。
假设我有一个输入 "Hello my name is \n Bill"
my_str = ' '.join(my_str.split())
所以这将加入字母并在我将其全部打印在一行时给我 "Hello my name is\nBill"
。我想要它打印的是:
Hello my name is
Bill
到航站楼。
你的问题是你没有换行符,你有两个 反斜杠 和一个 n
即反斜杠被转义所以拆分后你需要做替换:
In [10]: s = "Hello my name is \n Bill"
In [11]: print(" ".join(s.split()))
Hello my name is \n Bill
In [12]: print(" ".join(s.split()).replace("\n","\n"))
Hello my name is
Bill
或使用.decode("string_escape"):
In [15]: s = "Hello my name is \n Bill"
In [16]: print" ".join(s.split())
Hello my name is \n Bill
In [17]: print(" ".join(s.split()).decode("string_escape"))
Hello my name is
Bill
正如 Kirby 在评论中提到的,如果您正在创建字符串,请不要转义反斜杠,如果数据来自其他来源,请使用上述方法之一。