개요
튜플 목록에서 모든 요소가 양수인 튜플만 골라내야 하는 경우, 리스트 컴프리헨션(list comprehension)과 내장 함수 all()을 함께 사용하면 매우 간결하게 해결할 수 있습니다. all() 함수는 반복 가능한 객체의 모든 요소가 조건을 만족할 때 True를 반환하므로, 튜플 내부의 값들을 한 번에 검사하기에 적합합니다.
예제 코드
아래는 실제 구현 예시입니다.
my_tuple = [(14, 15, 19), (-32, 23, 32), (-31, 15, 63), (46, 68)]
print("The list is :")
print(my_tuple)
my_result = [sub for sub in my_tuple if all(element >= 0 for element in sub)]
print("The result is :")
print(my_result)실행 결과
The list is : [(14, 15, 19), (-32, 23, 32), (-31, 15, 63), (46, 68)] The result is : [(14, 15, 19), (46, 68)]
코드 설명
정수로 이루어진 튜플들의 목록을 정의한 뒤, 콘솔에 출력하여 확인합니다.
리스트 컴프리헨션을 사용해 목록의 각 튜플을 하나씩 순회하며, all() 함수로 해당 튜플의 모든 요소가 0보다 크거나 같은지 검사합니다.
검사 조건을 통과한 튜플들만 모아 새로운 리스트로 생성합니다.
생성된 결과 리스트를 변수에 할당한 후, 최종 결과를 콘솔에 출력합니다.
이처럼 음수가 포함된 (-32, 23, 32)와 (-31, 15, 63)은 필터링되어 제외되고, 모든 요소가 양수인 (14, 15, 19)와 (46, 68)만 결과로 남게 됩니다. 조건식에서 >= 대신 >를 사용하면 0을 제외한 순수한 양수만 허용하도록 조정할 수도 있습니다.