파이썬에서 문자열을 타이틀 케이스로 변환하는 방법은 무엇입니까?
예:
HILO -> Hilo
new york -> New York
SAN FRANCISCO -> San Francisco
이 작업을 수행하는 데 라이브러리 또는 표준 방법이 있습니까?
문서에서 권한을 사용하지 않는 이유:
>>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"
Pascal Case를 정말로 원한다면 다음을 사용할 수 있습니다.
>>> ''.join(x for x in 'make IT pascal CaSe'.title() if not x.isspace())
'MakeItPascalCase'
이 문자는 항상 소문자로 시작하고 영숫자가 아닌 문자도 제거합니다.
def camelCase(st):
output = ''.join(x for x in st.title() if x.isalnum())
return output[0].lower() + output[1:]
def capitalizeWords(s):
return re.sub(r'\w+', lambda m:m.group(0).capitalize(), s)
re.sub
대부분의 사용자에게 친숙한 문자열이 아닌 "교체" 기능을 사용할 수 있습니다.이 복제 함수는 다음과 함께 호출됩니다.re.Match
패턴의 각 일치에 대한 개체 및 결과(문자열이어야 함)가 해당 일치에 대한 대체로 사용됩니다.
동일한 기능의 긴 버전:
WORD_RE = re.compile(r'\w+')
def capitalizeMatch(m):
return m.group(0).capitalize()
def capitalizeWords(s):
return WORD_RE.sub(capitalizeMatch, s)
이렇게 하면 패턴이 사전 컴파일되고 람다 대신 명명된 함수가 사용됩니다.
잠재적 라이브러리: https://pypi.org/project/stringcase/
예:
import stringcase
stringcase.camelcase('foo_bar_baz') # => "fooBarBaz"
공간을 남겨둘지는 의문이지만. (예를 들어 공간을 제거하는 것으로 나타나지만, 공간을 남겨두는 것에 주목하는 버그 추적기 문제가 있습니다.)
왜 안 써요?다음과 같은 방법으로 요구 사항을 충족할 수 있습니다.
def FixCase(st):
return ' '.join(''.join([w[0].upper(), w[1:].lower()]) for w in st.split())
참고: 왜 제가 또 다른 답변을 제공합니까? 이 대답은 질문의 제목과 낙타 대소문자가 다음과 같이 정의된다는 개념을 기반으로 합니다. 일련의 단어들은 연결되어 있습니다(공백 없음!). 그래서 각 원래 단어들은 시리즈의 첫 번째 단어(완전히 소문자임)를 제외하고 대문자로 시작합니다(나머지는 소문자임).또한 "모든 문자열"은 ASCII 문자 집합을 가리킨다고 가정합니다. 유니코드는 이 솔루션에서 작동하지 않습니다.
간단하죠.
위의 정의를 고려할 때, 이 함수는
import re
word_regex_pattern = re.compile("[^A-Za-z]+")
def camel(chars):
words = word_regex_pattern.split(chars)
return "".join(w.lower() if i is 0 else w.title() for i, w in enumerate(words))
호출될 때, 이러한 방식으로 발생할 것입니다.
camel("San Francisco") # sanFrancisco
camel("SAN-FRANCISCO") # sanFrancisco
camel("san_francisco") # sanFrancisco
덜 간단한
이미 카멜 케이스가 있는 문자열과 함께 제공되면 실패합니다.
camel("sanFrancisco") # sanfrancisco <-- noted limitation
훨씬 더 간단한
많은 유니코드 문자열과 함께 실패합니다.
camel("México City") # mXicoCity <-- can't handle unicode
저는 이러한 사례들에 대한 해결책이 없습니다(또는 창의력을 가지고 도입될 수 있는 다른 사례).그래서, 현악기와 관련된 모든 것들처럼, 여러분 자신의 가장자리 케이스를 덮고 유니코드로 행운을 빌어요!
.(),title를 사용하면 모든 단어의 첫 글자를 대문자로 변환하고 나머지는 작게 변환합니다.
>>> a='mohs shahid ss'
>>> a.title()
'Mohs Shahid Ss'
>>> a='TRUE'
>>> b=a.title()
>>> b
'True'
>>> eval(b)
True
def camelCase(st):
s = st.title()
d = "".join(s.split())
d = d.replace(d[0],d[0].lower())
return d
저는 이 게시물에 저의 작은 기여를 추가하고 싶습니다.
def to_camelcase(str):
return ' '.join([t.title() for t in str.split()])
From code wars - 문자열에 대한 python의 simple .camelCase 메서드를 작성합니다.모든 단어는 공백 없이 첫 글자를 대문자로 표시해야 합니다.카멜케이스 (hello case") => 헬로케이스 카멜케이스 (hellocase) => 카멜케이스 워드
def camel_case(string):
titled_string = string.title()
space_joined_string = titled_string.replace(' ', '')
return space_joined_string
언급URL : https://stackoverflow.com/questions/8347048/how-to-convert-string-to-title-case-in-python
'programing' 카테고리의 다른 글
유형 스크립트 어설션과 같은 유형 가드 (0) | 2023.07.19 |
---|---|
Numpy를 사용하여 파생물을 어떻게 계산합니까? (0) | 2023.07.19 |
예외를 발생시키는 람다 식 정의 (0) | 2023.07.19 |
Spring MockMvc 웹 응용 프로그램 컨텍스트에 모의 주입 (0) | 2023.07.19 |
python을 딕트하기 위한 URL 쿼리 매개 변수 (0) | 2023.07.19 |