加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

没有正则表达式,在Python中将字符串中的多个空格减少为一个

发布时间:2020-12-14 05:48:47 所属栏目:百科 来源:网络整理
导读:在回答 this问题时,我怀疑如何在不使用正则表达式的情况下将字符串中的多个空格减少到一个.说字符串如下: s = "Mary had a little lamb" 我想到的第一个解决方案是 ' '.join(s.split()) 但是如果字符串是这样的话,这将不会保留前导和尾随空格 s = " Mary ha
在回答 this问题时,我怀疑如何在不使用正则表达式的情况下将字符串中的多个空格减少到一个.说字符串如下:

s = "Mary    had    a little lamb"

我想到的第一个解决方案是

' '.join(s.split())

但是如果字符串是这样的话,这将不会保留前导和尾随空格

s = "    Mary    had    a little lamb  "

为了保存前导和尾随空格(如果存在),我想出了一个稍微不同的方法,我在字符串的开头和结尾添加了一个虚拟字符(在本例中为’ – ‘),我后来删除了分裂.代码如下:

' '.join(('-' + s + '-').split())[1:-1]

有没有其他内置功能或其他pythonic方式来做到这一点?

编辑:
通过保留前导和尾随空格,我的意思是,如果在字符串的开头和/或末尾有多个空格,这些多个空格也应该减少到一个空格

解决方法

你可以使用类似的东西:

from itertools import groupby

s = "    Mary    had    a little lamb  "
res = ''.join(' ' if is_space else ''.join(chars) for is_space,chars in groupby(s,str.isspace))
#  Mary had a little lamb

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读