리스트 안에 리스트가 중첩된 자료구조에서 알파벳으로만 구성된 행을 걸러내야 하는 경우가 있습니다. 이때는 전체 리스트를 순회하면서 각 요소에 isalpha() 메서드를 적용하여 해당 문자열이 오직 알파벳으로만 이루어져 있는지 확인하면 됩니다.
예제 코드
아래는 실제 동작 과정을 보여주는 예시입니다.
my_list = [["python", "is", "best"], ["abc123", "good"],["abc def ghij"], ["abc2", "gpqr"]]
print("The list is :")
print(my_list)
my_result = [sub for sub in my_list if all(element.isalpha() for element in sub)]
print("The result is :")
print(my_result)실행 결과
The list is : [['python', 'is', 'best'], ['abc123', 'good'], ['abc def ghij'], ['abc2', 'gpqr']] The result is : [['python', 'is', 'best']]
코드 설명
문자열 값들을 담고 있는 리스트의 리스트를 정의합니다.
정의된 리스트를 콘솔에 출력하여 확인합니다.
리스트 컴프리헨션(list comprehension)을 사용해 내부 리스트들을 하나씩 순회하면서, 각 요소가 알파벳으로만 구성되어 있는지 검사합니다.
검사에는 파이썬 내장 문자열 메서드인
isalpha()가 활용되며,all()함수와 함께 사용해 행 내 모든 요소가 조건을 만족하는지 확인합니다.조건을 통과한 행들만 골라 새로운 변수에 할당합니다.
마지막으로 결과가 저장된 변수를 콘솔에 출력합니다.
위 예제에서 'abc123'은 숫자가 포함되어 있고, 'abc def ghij'는 공백이 포함되어 있으며, 'abc2' 역시 숫자를 포함하고 있기 때문에 필터링에서 제외됩니다. 따라서 최종 결과에는 알파벳으로만 이루어진 ['python', 'is', 'best']만 남게 됩니다.