Python - 在字符串中摆脱空间

时间:2014-02-22 17:43:33

标签: python string

我正在以

的形式检索大量数据
6800       MAIN ST

如何格式化以使其看起来正常(数字和街道名称之间的一个空格),例如:

6800 MAIN ST

2 个答案:

答案 0 :(得分:5)

使用str.splitstr.join

In [733]: s='6800       MAIN ST'

In [734]: ' '.join(s.split())
Out[734]: '6800 MAIN ST'

你也可以使用re作为@NPE提到,虽然你得到正则表达式模式编译它也不是很快。基准:

In [746]: s='asdf             fasd zzzzzz          ddddddd      z'

In [747]: timeit ' '.join(s.split())
1000000 loops, best of 3: 545 ns per loop

In [748]: ptn=re.compile(r"\s+")

In [749]: timeit re.sub(ptn, ' ', s)
100000 loops, best of 3: 4.08 us per loop

答案 1 :(得分:3)

一种方法是使用正则表达式:

In [8]: s = "6800       MAIN ST"

In [9]: re.sub(r"\s+", " ", s)
Out[9]: '6800 MAIN ST'