gpt4 book ai didi

python - 消除python中字符串中多次出现的空格

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:59 25 4
gpt4 key购买 nike

如果我有一个字符串

"this is   a    string"

如何缩短它,使单词之间只有一个空格而不是多个空格? (空格个数随机)

"this is a string"

最佳答案

您可以使用 string.split"".join(list) 以合理的 pythonic 方式实现这一点 - 可能有更高效的算法,但他们赢了看起来不错。

顺便说一下,这比使用正则表达式快很多,至少在示例字符串上是这样:

import re
import timeit

s = "this is a string"

def do_regex():
for x in xrange(100000):
a = re.sub(r'\s+', ' ', s)

def do_join():
for x in xrange(100000):
a = " ".join(s.split())


if __name__ == '__main__':
t1 = timeit.Timer(do_regex).timeit(number=5)
print "Regex: ", t1
t2 = timeit.Timer(do_join).timeit(number=5)
print "Join: ", t2


$ python revsjoin.py
Regex: 2.70868492126
Join: 0.333452224731

编译这个正则表达式确实提高了性能,但前提是你在编译后的正则表达式上调用 sub,而不是将编译后的形式作为参数传递给 re.sub:

def do_regex_compile():
pattern = re.compile(r'\s+')
for x in xrange(100000):
# Don't do this
# a = re.sub(pattern, ' ', s)
a = pattern.sub(' ', s)

$ python revsjoin.py
Regex: 2.72924399376
Compiled Regex: 1.5852200985
Join: 0.33763718605

关于python - 消除python中字符串中多次出现的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com