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

파이썬에서 대소문자가 통일된 문자열만 필터링하는 방법

문자열 목록에서 대소문자가 통일된 문자열(모든 글자가 소문자이거나 모든 글자가 대문자인 문자열)만 골라내야 하는 경우가 종종 있습니다. 파이썬에서는 리스트 컴프리헨션(list comprehension)과 함께 내장 문자열 메서드인 isupper()islower()를 활용하면 아주 간단하게 처리할 수 있습니다.

예제 코드

다음은 실제 동작 예시입니다.

my_list = ["Python", "good", "FOr", "few", "CODERS"]

print("원본 리스트 :")
print(my_list)

my_result = [sub for sub in my_list if sub.islower() or sub.isupper()]

print("대소문자가 통일된 문자열 :")
print(my_result)

실행 결과

The list is :
['Python', 'good', 'FOr', 'few', 'CODERS']
The strings with same case are :
['good', 'few', 'CODERS']

출력 결과를 보면 'Python'(첫 글자만 대문자)과 'FOr'(대소문자가 섞임)처럼 대소문자가 혼합된 문자열은 제외되고, 순수하게 소문자 또는 대문자로만 이루어진 'good', 'few', 'CODERS'만 남은 것을 확인할 수 있습니다.

동작 원리

  • 먼저 여러 문자열을 담은 리스트를 정의하고 콘솔에 출력합니다.

  • 리스트 컴프리헨션을 사용해 리스트의 각 요소를 순회하면서, 해당 문자열이 전부 소문자인지(islower()) 아니면 전부 대문자인지(isupper()) 검사합니다.

  • 조건을 만족하는 문자열만 새 리스트에 담아 변수에 할당합니다.

  • 최종 결과를 콘솔에 출력합니다.

참고로 islower()isupper()는 최소 한 개 이상의 대소문자 구분이 가능한(cased) 문자가 포함되어 있어야 정확하게 동작하므로, 숫자나 특수문자만 있는 문자열이 포함될 가능성이 있다면 별도의 조건 처리를 추가하는 것이 좋습니다.