문자열에서 공백을 모두 제거하고 파이썬에서 모든 문자를 소문자로 만들려면 어떻게해야합니까?공백을 제거하고 파이썬 문자열에 모두 소문자로 만듭니다.
또한 javascript 에서처럼이 작업을 문자열 프로토 타입에 추가 할 수 있습니까?
문자열에서 공백을 모두 제거하고 파이썬에서 모든 문자를 소문자로 만들려면 어떻게해야합니까?공백을 제거하고 파이썬 문자열에 모두 소문자로 만듭니다.
또한 javascript 에서처럼이 작업을 문자열 프로토 타입에 추가 할 수 있습니까?
''.join(c.lower() for c in s if not c.isspace())
아니요. 파이썬은 루비가 아닙니다.
>>> string=""" a b c
... D E F
... g
... """
>>> ''.join( i.lower() for i in string.split() )
'abcdefg'
>>>
또는 여기
>>> ''.join(map(str.lower, string.split()) )
'abcdefg'
조인 분할 솔루션은 John Machin의 답변보다 훨씬 느립니다. timeit을 사용하여 250,000 명의 담당자에게 0.733391046524s의 응답을 보냈습니다 (해당 솔루션에 대해 0.413959026337s). 가장 빠르다! – radtek
이 솔루션은 정규 표현식을 사용하고 있습니다 : 복잡하지 않은 빠른 대답에 대한
>>> import re
>>> test = """AB cd KLM
RST l
K"""
>>> re.sub('\s+','',test).lower()
'abcdklmrstlk'
이것은 250k 반복에서 0.809034109116s의 가장 느린 것 같습니다. John Machin의 솔루션은 0.411396980286s입니다. 지도는 0.582627058029에서 이보다 더 빠릅니다. – radtek
어떻게? 어떤 map
, 아니 for
루프, ...
>>> s = "Foo Bar " * 5
>>> s
'Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar '
>>> ''.join(s.split()).lower()
'foobarfoobarfoobarfoobarfoobar'
>>>
[파이썬 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
+1은 가장 빠르고 정확한 옵션을 사용할 수도 있습니다. – samplebias
+1, 참으로 빠른 나는 지금까지 보았다. 250,000 반복을 사용하여 timeit 모듈로 확인 0.403948068619s는 스플릿을 사용하고, 0.585318088531s는 맵을 사용합니다. 고맙습니다! – radtek
가 파이썬에서 덜 사용되는 정규식은 무엇인가? 없습니다 –
정규식은 일반적으로 필요하지 않습니다. –
@DutrowLLC, 그들은 일반적으로 필요하지 않지만 필수적인 경우가 있습니다. – ghostdog74