Python에서 문자열을 소문자로 만들려면 어떻게 해야 하나요?
문자열을 소문자로 변환하는 방법이 있나요?
"Kilometers" → "kilometers"
사용방법:
"Kilometer".lower()
이것을 하는 표준적인 피톤적 방법은
>>> '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를 보고 싶을 것입니다.몇 가지 답변은 여기에 기재되어 있습니다.
유니코드 파이썬 3
Python 3은 일반 문자열 리터럴을 유니코드로 처리합니다.
>>> string = 'Километр'
>>> string
'Километр'
>>> string.lower()
'километр'
Python 2, 일반 문자열 리터럴은 바이트입니다.
Python 2에서는 아래가 셸에 붙여넣기되어 리터럴을 바이트 문자열로 인코딩합니다.
그리고.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 의 Unicode 의 사용법을 참조해 주세요.
Unicode 리터럴 사용, 사용 안 함str
리터럴
그래서 저희는unicode
이 변환을 처리하기 위한 문자열. 유니코드 문자열 리터럴로 쉽게 실현됩니다.u
prefix(및 주의)u
prefix는 Python 3)에서도 동작합니다.
>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километр
이 바이트는 다른 바이트와는 완전히 다르다는 점에 주의해 주십시오.str
bytes - 이스케이프 문자:'\u'
그 뒤에 2바이트 폭 또는 16비트를 나타냅니다.unicode
문자:
>>> 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 타입은 다른 대부분의 인코딩과 비교하여 많은 장점을 가진 범용 인코딩 포맷입니다.다음 중 하나를 사용할 수 있습니다.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_literal과 동일합니다.
베스트 프랙티스, Unicode 사용
소프트웨어는 내부적으로만 Unicode 문자열과 함께 작동하며 출력 시 특정 인코딩으로 변환해야 합니다.
필요에 따라 부호화 가능
단, 소문자를 다시 입력하려면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에서는 Unicode는 Python 문자열로 인코딩할 수 있고 Python 문자열은 Unicode 유형으로 디코딩할 수 있습니다.
2 의 영어 경우 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
언급URL : https://stackoverflow.com/questions/6797984/how-do-i-lowercase-a-string-in-python
'source' 카테고리의 다른 글
JavaScript 개체를 표시하려면 어떻게 해야 합니까? (0) | 2022.11.05 |
---|---|
unzip : "unzip"이라는 용어는 명령어 이름으로 인식되지 않습니다. (0) | 2022.11.05 |
MySQL의 CONCAT에서 GROUP_CONCAT를 사용하는 방법 (0) | 2022.11.05 |
jQuery Select2의 선택한 값을 설정하려면 어떻게 해야 합니다. (0) | 2022.11.05 |
Python의 추상 클래스와 인터페이스의 차이 (0) | 2022.11.05 |