【发布时间】:2014-01-11 14:24:55
【问题描述】:
在回答this 问题时,我对如何在不使用正则表达式的情况下在 Python 中将字符串中的多个空格减少为一个有疑问。说字符串如下:
s = "Mary had a little lamb"
我想到的第一个解决方案是
' '.join(s.split())
但如果字符串类似于
,这将不会保留前导和尾随空格s = " Mary had a little lamb "
为了节省前导和尾随空格(如果存在),我想出了一个稍微不同的方法,我在字符串的开头和结尾添加了一个虚拟字符(在本例中为“-”),我稍后会这样做拆分后删除。代码如下:
' '.join(('-' + s + '-').split())[1:-1]
是否有任何其他内置函数或其他 Python 方式来执行此操作?
编辑: 通过保留前导和尾随空格,我的意思是如果字符串的开头和/或结尾有多个空格,这些多个空格也应该减少到一个空格
【问题讨论】:
-
我喜欢你的解决方案。除此之外,我会使用正则表达式。虽然你的肯定需要评论,但正则表达式可能不需要。
-
当我尝试使用虚拟字符的解决方案时,它不会保留前导/尾随空格,我不明白..
-
@Totem,更正:我提到的解决方案会将字符串开头和/或结尾的多个空格减少为一个空格。它不会节省所有空间
标签: python python-3.x