source

Python에서 문자열을 소문자로 만들려면 어떻게 해야 하나요?

manycodes 2022. 11. 5. 09:03
반응형

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이 변환을 처리하기 위한 문자열. 유니코드 문자열 리터럴로 쉽게 실현됩니다.uprefix(및 주의)uprefix는 Python 3)에서도 동작합니다.

>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километр

이 바이트는 다른 바이트와는 완전히 다르다는 점에 주의해 주십시오.strbytes - 이스케이프 문자:'\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, 로 변환할 필요가 있습니다.unicodePython의 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

반응형