Python

[filter] 문자열에서 알파벳 추출

비번변경 2022. 4. 12. 18:53

문자열 데이터에서 알파벳만 추출하려고 한다. Python 내장 함수 중 하나인 filter 함수를 사용해서 처리해보고자 한다.

 

filter

여러 개의 데이터로부터 특정 데이터만 추릴 때 사용하는 함수로, 주로 list나 tuple을 대상으로 사용한다. 

filter(function, iterable)

function은 데이터를 추리는 조건에 해당하는 함수이다. 직접 정의해서 사용해도 되지만 lambda 함수를 활용할 수도 있다.

iterable에는 순회할 수 있는 데이터가 들어간다. list, tuple, set, string 등이 해당될 수 있다.

 

예시)

inp = "abcd123456efghi!@#$"

print(filter(str.isalpha, inp))
for i in filter(str.isalpha, inp):
    print(i, end="")

filter 함수의 반환 데이터는 filter 형이다. 따라서 값을 출력하기 위해서는 for 문을 사용하여 출력하거나, 반환 데이터를 list, tuple 등의 데이터형으로 변환하여 저장한 뒤 출력할 수 있다. 

 

 

+

filter 함수를 사용하지 않고 데이터를 필터링할 때는 list comprehension도 사용할 수 있다.

inp = "abcd123456efghi!@#$"

print(*[i for i in inp if i.isalpha()], sep="")


참고 문서

https://www.daleseo.com/python-filter/

 

 

728x90