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

파이썬(Python) – 리스트의 리스트에서 알파벳으로만 구성된 행 필터링하기

리스트 안에 리스트가 중첩된 자료구조에서 알파벳으로만 구성된 행을 걸러내야 하는 경우가 있습니다. 이때는 전체 리스트를 순회하면서 각 요소에 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']만 남게 됩니다.