Удалите пробелы и сделайте все строчные в строке для Python - PullRequest
6 голосов
/ 27 апреля 2011

Как мне удалить все пробелы из строки и сделать все символы строчными в Python?

Кроме того, я могу добавить эту операцию в прототип строки, как я мог бы в javascript?

Ответы [ 4 ]

21 голосов
/ 27 апреля 2011

Как насчет несложного быстрого ответа? Нет 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
6 голосов
/ 27 апреля 2011
''.join(c.lower() for c in s if not c.isspace())

Нет.Python - это не Ruby.

2 голосов
/ 27 апреля 2011

Вот решение с использованием регулярного выражения: </p> <pre><code>>>> import re >>> test = """AB cd KLM RST l K""" >>> re.sub('\s+','',test).lower() 'abcdklmrstlk'

2 голосов
/ 27 апреля 2011
>>> string=""" a b      c
... D E         F
...                     g
... """
>>> ''.join(  i.lower() for i  in string.split()  )
'abcdefg'
>>>

ИЛИ

>>> ''.join( map(str.lower, string.split() )  )
'abcdefg'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...