Python 프로그래밍을 하다 보면 튜플(tuple) 안의 모든 요소가 None인지 확인해야 하는 경우가 종종 있습니다. 이럴 때 all() 메서드와 제너레이터 표현식(generator expression)을 함께 사용하면 간결하고 효율적으로 처리할 수 있습니다.
all() 메서드는 반복 가능한(iterable) 객체 내부의 모든 값이 True일 경우 True를 반환하고, 하나라도 False가 존재하면 False를 반환합니다. 이 특성을 활용하면 튜플 전체가 None으로만 구성되어 있는지 손쉽게 검사할 수 있습니다.
예제 코드
my_tuple_1 = (None, None, None, None, None, None, None)
print("튜플의 내용 : ")
print(my_tuple_1)
my_result = all(elem is None for elem in my_tuple_1)
print("튜플이 None 값만 포함하고 있습니까? ")
print(my_result)실행 결과
튜플의 내용 : (None, None, None, None, None, None, None) 튜플이 None 값만 포함하고 있습니까? True
코드 설명
- 먼저
None값들로 구성된 튜플을 정의하고, 콘솔에 출력하여 내용을 확인합니다. - 제너레이터 표현식을 사용해 튜플의 각 요소를 순회하면서,
all()메서드로 모든 요소가None인지 검사합니다. - 검사 결과는 변수
my_result에 저장됩니다. - 마지막으로 결과 값을 콘솔에 출력합니다. 모든 요소가
None이므로True가 출력됩니다.
참고 사항
elem is None과 같이 동등 비교 연산자(==) 대신 식별 연산자(is)를 사용하는 것이 권장됩니다. Python에서는 None이 싱글턴(singleton) 객체이기 때문에 is 연산자로 비교하는 것이 더 정확하고 안전한 방법입니다.