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

Python – Boolean True가 하나라도 있는 행 추출하는 방법

리스트 안에서 Boolean 값 True가 하나라도 포함된 행만 추출해야 하는 경우, 리스트 컴프리헨션(list comprehension)과 any 함수를 함께 사용하면 간단하게 해결할 수 있습니다.

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

예제 코드

my_tuple = [[False, True], [False, False], [True, False, True], [False]]

print("The tuple is :")
print(my_tuple)

my_result = [row for row in my_tuple if any(element for element in row)]

print("The result is ")
print(my_result)

실행 결과

The tuple is :
[[False, True], [False, False], [True, False, True], [False]]
The result is
[[False, True], [True, False, True]]

코드 설명

  • 먼저 리스트 안에 리스트가 중첩된 구조(리스트의 리스트)를 정의하고, 콘솔에 출력하여 원본 데이터를 확인합니다.

  • 리스트 컴프리헨션을 사용해 각 행(row)을 순회하면서 조건을 검사합니다.

  • any 함수는 행 내부의 요소들을 하나씩 확인하여, 단 하나라도 True인 요소가 존재하면 True를 반환하고, 모두 False이면 False를 반환합니다.

  • 조건을 통과한 행들만 모아 새로운 리스트로 만든 뒤 변수에 할당합니다.

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

핵심 포인트

any()는 파이썬의 내장 함수로, 반복 가능한 객체(iterable)를 인자로 받아 그중 하나라도 참인 요소가 있으면 즉시 True를 반환합니다. 이러한 특성 덕분에 복잡한 반복문 없이 한 줄의 코드로 조건에 맞는 행만 깔끔하게 추출할 수 있습니다. 위 예제에서는 [False, False][False]처럼 True가 전혀 없는 행은 자동으로 제외되고, True가 하나 이상 포함된 행만 결과에 남게 됩니다.