在Python中去除字符串空格并转为小写

11 投票
5 回答
22720 浏览
提问于 2025-04-16 16:29

我该怎么在Python中去掉字符串里的所有空格,并把所有字母变成小写呢?

另外,我能像在JavaScript中那样,把这个操作加到字符串的原型上吗?

5 个回答

2
>>> string=""" a b      c
... D E         F
...                     g
... """
>>> ''.join(  i.lower() for i  in string.split()  )
'abcdefg'
>>>
>>> ''.join( map(str.lower, string.split() )  )
'abcdefg'

或者

32

有没有一个简单直接的快速答案?不需要用到map,也不需要for循环,...

>>> s = "Foo Bar " * 5
>>> s
'Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar '
>>> ''.join(s.split()).lower()
'foobarfoobarfoobarfoobarfoobar'
>>>

[Python 2.7.1]

>python -mtimeit -s"s='The quick brown Fox jumped over the lazy dogs'" "''.join(c.lower() for c in s if not c.isspace())"
100000 loops, best of 3: 11.7 usec per loop

>python27\python -mtimeit -s"s='The quick brown Fox jumped over the lazy dogs'" "''.join(  i.lower() for i  in s.split()  )"
100000 loops, best of 3: 3.11 usec per loop

>python27\python -mtimeit -s"s='The quick brown Fox jumped over the lazy dogs'" "''.join( map(str.lower, s.split() )  )"
100000 loops, best of 3: 2.43 usec per loop

>\python27\python -mtimeit -s"s='The quick brown Fox jumped over the lazy dogs'" "''.join(s.split()).lower()"
1000000 loops, best of 3: 1 usec per loop
9
''.join(c.lower() for c in s if not c.isspace())

不,Python 不是 Ruby。

撰写回答