2009-06-20 4 views
1

분리 기호에서 문자열을 대문자로 사용하려고 할 때 동작이 발생했습니다. 이해가되지 않습니다. 누군가 루프에서 되돌려 진 문자열을 왜 설명 할 수 있습니까? 감사.루프에서 문자열의 파이썬 동작

s = 'these-three_words' 
seperators = ('-','_') 
for sep in seperators: 
    s = sep.join([i.capitalize() for i in s.split(sep)]) 
    print s 
print s 

stdout: 
These-Three_words 
These-three_Words 
These-three_Words 

답변

6

capitalize는 첫 번째 문자의 대문자와 문자열 소문자의 나머지 부분을집니다. 첫번째 반복에서

, 그것은 다음과 같다 :

>>> [i for i in s.split('_')] 
['These-Three', 'words'] 

그럼집니다 모두 활용할 실행 T : 두 번째 반복에서

>>> [i.capitalize() for i in s.split('-')] 
['These', 'Three_words'] 

, 문자열은로 구분 세 소문자.

2

str.capitalize은 첫 번째 문자를 대문자로 만들고 나머지 문자를 소문자로합니다.

5

당신은 title()을 사용할 수

>>> s = 'these-three_words' 
>>> print s.title() 
These-Three_Words 
2

가 대문자() 대문자 만 첫 번째 문자로 문자열의 복사본을 반환합니다. 이것을 사용할 수 있습니다 :

 
def cap(s): 
    return s[0].upper() + s[1:] 
관련 문제