파이썬에서 문자열의 길이가 모두 짝수인 행(리스트)만 추출해야 하는 경우, 리스트 컴프리헨션(list comprehension)과 함께 all() 연산자와 나머지 연산자(%)를 활용하면 간단하게 해결할 수 있습니다.
아래는 실제 동작 예시입니다.
예제 코드
my_list = [["python", "is", "best"], ["best", "good", "python"], ["is", "better"], ["for", "coders"]]
print("원본 리스트 :")
print(my_list)
my_result = [row for row in my_list if all(len(element) % 2 == 0 for element in row)]
print("결과 리스트 :")
print(my_result)실행 결과
원본 리스트 : [['python', 'is', 'best'], ['best', 'good', 'python'], ['is', 'better'], ['for', 'coders']] 결과 리스트 : [['python', 'is', 'best'], ['best', 'good', 'python'], ['is', 'better']]
동작 원리
문자열들을 요소로 가지는 중첩 리스트를 정의하고, 콘솔에 출력합니다.
리스트 컴프리헨션을 사용하여 리스트의 각 행(row)을 순회합니다.
all()함수와 나머지 연산자(%)를 이용해 해당 행의 모든 문자열 요소 길이가 짝수인지 검사합니다.len(element) % 2 == 0조건은 길이가 2로 나누어 떨어짐, 즉 짝수임을 의미합니다.조건을 만족하는 행만 새로운 리스트에 저장되고, 변수
my_result에 할당됩니다. 위 예제에서는 마지막 행["for", "coders"]의 "for"가 길이 3(홀수)이므로 결과에서 제외됩니다.최종 결과 리스트가 콘솔에 출력됩니다.
이처럼 all() 제너레이터 표현식을 조합하면 별도의 반복문 없이 한 줄로 필터링 로직을 작성할 수 있어 코드가 간결하고 가독성이 뛰어납니다.