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

파이썬에서 특정 문자를 포함한 문자열 제거하기 – 리스트 컴프리헨션과 any 활용법

파이썬에서 특정 문자(불필요한 문자)를 포함하고 있는 문자열을 걸러내야 하는 경우, 리스트 컴프리헨션(list comprehension)any 연산자를 함께 사용하면 간단하게 해결할 수 있습니다.

아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.

예제 코드

my_list = ["python", "is", "fun", "to", "learn"]

print("문자열 리스트 :")
print(my_list)

my_char_list = ['p', 's', 'l']

print("제외할 문자 리스트 :")
print(my_char_list)

my_result = [sub for sub in my_list if not any(element in sub for element in my_char_list)]

print("결과 리스트 :")
print(my_result)

실행 결과

문자열 리스트 :
['python', 'is', 'fun', 'to', 'learn']
제외할 문자 리스트 :
['p', 's', 'l']
결과 리스트 :
['fun', 'to']

코드 설명

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

  • 다음으로 제외 대상이 될 문자들을 담은 별도의 리스트를 정의하고 출력합니다.

  • 리스트 컴프리헨션을 사용해 원본 리스트의 각 요소를 순회하면서, any() 함수로 해당 문자열 안에 제외할 문자가 하나라도 포함되어 있는지 검사합니다.

  • 조건을 통과한(즉, 제외할 문자가 없는) 문자열만 새로운 리스트에 저장되고, 그 결과는 변수에 할당됩니다.

  • 마지막으로 필터링된 결과 리스트를 콘솔에 출력합니다.

동작 원리 요약

위 예제에서는 'python'에는 'p'가, 'is'에는 's'가, 'learn'에는 'l'이 포함되어 있기 때문에 제외되고, 어떤 제외 문자도 포함하지 않는 'fun'과 'to'만 최종 결과로 남게 됩니다. 이처럼 any()와 제너레이터 표현식을 조합하면 반복문 없이도 간결하고 가독성 높은 코드로 문자열 필터링을 구현할 수 있습니다.