Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 대소문자를 구분하지 않는 문자열 비교 방법


Python에서 두 문자열이 같은지 확인할 때, 대소문자의 차이는 무시하고 내용만 비교해야 하는 경우가 자주 발생합니다. 예를 들어 사용자 입력값을 검증하거나 검색 기능을 구현할 때 이러한 비교 방식이 매우 유용합니다.

가장 간단한 방법은 lower() 메서드를 사용해 두 문자열을 모두 소문자로 변환한 뒤 비교하는 것입니다.

예제

string1 = 'Star Wars'
string2 = 'star wars'

if string1.lower() == string2.lower():
    print("두 문자열은 대소문자와 관계없이 같습니다")
else:
    print("두 문자열은 다릅니다")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

두 문자열은 대소문자와 관계없이 같습니다

동작 원리

lower() 메서드는 문자열의 모든 영문자를 소문자로 변환한 새로운 문자열을 반환합니다. 따라서 'Star Wars'와 'star wars'는 각각 'star wars'로 변환되어 서로 같은 문자열로 판단됩니다.

casefold()로 더 정확하게 비교하기

영어 외의 언어까지 고려한 보다 엄격한 대소문자 변환이 필요하다면 Python 3에서 도입된 casefold() 메서드를 사용하는 것이 좋습니다.

if string1.casefold() == string2.casefold():
    print("두 문자열은 같습니다")

casefold()lower()보다 더 많은 특수 문자를 처리할 수 있어 국제화(i18n)를 지원하는 애플리케이션에서 권장되는 방식입니다.