문자열을 대문자로 변환하거나 일부 대문자를 소문자로 변환하는 방법이 있습니까?
예: "킬로미터" → "킬로미터".
질문자 :Benjamin Didur
문자열을 대문자로 변환하거나 일부 대문자를 소문자로 변환하는 방법이 있습니까?
예: "킬로미터" → "킬로미터".
.lower()
사용 - 예:
s = "Kilometer" print(s.lower())
공식 2.x 문서는 다음과 같습니다. str.lower()
공식 3.x 문서는 다음과 같습니다. str.lower()
Python에서 문자열을 소문자로 변환하는 방법은 무엇입니까?
사용자가 입력한 전체 문자열을 대문자로 변환하거나 일부 대문자를 소문자로 변환하는 방법이 있습니까?
예: 킬로미터 --> 킬로미터
이 작업을 수행하는 표준 Python 방식은 다음과 같습니다.
>>> 'Kilometers'.lower() 'kilometers'
그러나 목적이 대소문자를 구분하지 않는 일치를 수행하는 것이라면 대소문자 접기를 사용해야 합니다.
>>> 'Kilometers'.casefold() 'kilometers'
이유는 다음과 같습니다.
>>> "Maße".casefold() 'masse' >>> "Maße".lower() 'maße' >>> "MASSE" == "Maße" False >>> "MASSE".lower() == "Maße".lower() False >>> "MASSE".casefold() == "Maße".casefold() True
이것은 Python 3의 str 메서드이지만 Python 2에서는 PyICU 또는 py2casefold를 보고 싶을 것입니다. 여러 답변이 여기에 설명되어 있습니다.
Python 3 은 일반 문자열 리터럴을 유니코드로 처리합니다.
>>> string = 'Километр' >>> string 'Километр' >>> string.lower() 'километр'
Python 2에서 쉘에 붙여넣은 아래는 utf-8
사용하여 리터럴을 바이트 문자열로 인코딩합니다.
그리고 lower
는 바이트가 인식할 수 있는 변경 사항을 매핑하지 않으므로 동일한 문자열을 얻습니다.
>>> string = 'Километр' >>> string '\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80' >>> string.lower() '\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80' >>> print string.lower() Километр
스크립트에서 Python은 의도한 코딩이 모호하기 때문에 인코딩이 지정되지 않은 문자열에 있는 비 ASCII(Python 2.5 및 Python 2.4의 경고) 바이트에 반대합니다. 이에 대한 자세한 내용은 문서 및 PEP 263 의 유니코드 방법을 참조하세요.
str
리터럴이 아닌 유니코드 리터럴 사용 unicode
문자열이 필요합니다. 유니코드 문자열 리터럴로 쉽게 수행할 수 있습니다. 유니코드 문자열 리터럴은 u
접두사로 u
접두사는 Python 3에서도 작동합니다).
>>> unicode_literal = u'Километр' >>> print(unicode_literal.lower()) километр
str
바이트와 완전히 다릅니다. 이스케이프 문자는 '\u'
다음에 2바이트 너비 또는 이러한 unicode
문자의 16비트 표현이 옵니다.
>>> unicode_literal u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440' >>> unicode_literal.lower() u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440'
str
형식으로만 가지고 있다면 unicode
로 변환해야 합니다. Python의 유니코드 유형은 대부분의 다른 인코딩에 비해 많은 이점이 있는 범용 인코딩 형식입니다. unicode
생성자 또는 str.decode
메서드를 사용하여 str
unicode
로 변환할 수 있습니다.
>>> unicode_from_string = unicode(string, 'utf-8') # "encoding" unicode from string >>> print(unicode_from_string.lower()) километр >>> string_to_unicode = string.decode('utf-8') >>> print(string_to_unicode.lower()) километр >>> unicode_from_string == string_to_unicode == unicode_literal True
두 방법 모두 unicode 유형으로 변환되며 unicode_literal과 동일합니다.
항상 유니코드 텍스트로 작업하는 것이 좋습니다.
소프트웨어는 내부적으로 유니코드 문자열로만 작동해야 하며 출력 시 특정 인코딩으로 변환해야 합니다.
str
유형에서 소문자를 다시 얻으려면 Python 문자열을 utf-8
다시 인코딩하십시오.
>>> print string Километр >>> string '\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80' >>> string.decode('utf-8') u'\u041a\u0438\u043b\u043e\u043c\u0435\u0442\u0440' >>> string.decode('utf-8').lower() u'\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440' >>> string.decode('utf-8').lower().encode('utf-8') '\xd0\xba\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80' >>> print string.decode('utf-8').lower().encode('utf-8') километр
따라서 Python 2에서 유니코드는 Python 문자열로 인코딩할 수 있고 Python 문자열은 유니코드 유형으로 디코딩할 수 있습니다.
Python 2에서는 UTF-8의 비영어 단어에는 작동하지 않습니다. 이 경우 decode('utf-8')
이 도움이 될 수 있습니다.
>>> s='Километр' >>> print s.lower() Километр >>> print s.decode('utf-8').lower() километр
또한 일부 변수를 덮어쓸 수 있습니다.
s = input('UPPER CASE') lower = s.lower()
다음과 같이 사용하는 경우:
s = "Kilometer" print(s.lower()) - kilometer print(s) - Kilometer
호출될 때만 작동합니다.
이것을 시도하지 마십시오. 완전히 권장하지 않습니다. 다음과 같이 하지 마십시오.
import string s='ABCD' print(''.join([string.ascii_lowercase[string.ascii_uppercase.index(i)] for i in s]))
산출:
abcd
아직 아무도 작성하지 않았기 swapcase
를 사용할 수 있습니다(대문자가 소문자가 되고 그 반대도 마찬가지입니다).
s='ABCD' print(s.swapcase())
산출:
abcd
가장 간단한 방법은 다음과 같습니다.
i = "Kilometers" print(i.lower())
출처 : http:www.stackoverflow.com/questions/6797984/how-do-i-lowercase-a-string-in-python
Python 사전에서 키를 제거하려면 어떻게 해야 합니까? (0) | 2021.11.25 |
---|---|
CSS를 사용하여 텍스트 또는 이미지에 투명한 배경을 제공하려면 어떻게 합니까? (0) | 2021.11.25 |
연산자 오버로딩에 대한 기본 규칙과 관용구는 무엇입니까? (0) | 2021.11.25 |
내 열거형 정의가 JavaScript에서 변경되지 않는다는 것을 어떻게 보장할 수 있습니까? (0) | 2021.11.24 |
Bash에서 파일 이름 및 확장자 추출 (0) | 2021.11.24 |