튜플(tuple)에 특정 값 'K'가 포함되어 있는지 확인해야 하는 경우, any 메서드와 map 메서드, 그리고 lambda 함수를 조합하여 해결할 수 있습니다. 각 요소가 어떤 역할을 하는지 먼저 살펴보겠습니다.
핵심 개념 정리
람다(lambda) 함수란?
익명 함수(anonymous function)는 이름 없이 정의되는 함수를 의미합니다. 일반적으로 파이썬에서 함수는 def 키워드로 정의하지만, 익명 함수는 lambda 키워드를 사용해 정의합니다. 람다 함수는 단 하나의 표현식만 가질 수 있지만, 인수는 원하는 만큼 여러 개 받을 수 있으며, 표현식을 평가한 결과를 반환합니다.
map 함수란?
map 함수는 주어진 함수나 연산을 반복 가능한(iterable) 객체(리스트, 튜플 등)의 모든 항목에 차례대로 적용합니다. 그 결과를 맵 객체 형태로 반환하며, 다른 함수와 함께 사용하면 반복문 없이도 간결하게 데이터를 처리할 수 있습니다.
any 메서드란?
any 메서드는 반복 가능한 객체의 요소 중 하나라도 True가 존재하는지 검사합니다. 하나라도 True라면 True를 반환하고, 모두 False라면 False를 반환합니다.
예제 코드
my_tuple = (67, 45, 34, 56, 99, 123, 10, 56)
print("The tuple is : ")
print(my_tuple)
K = 67
print("The value of 'K' has been initialized")
my_result = any(map(lambda elem: elem is K, my_tuple))
print("Does tuple contain the K value ?")
print(my_result)실행 결과
The tuple is : (67, 45, 34, 56, 99, 123, 10, 56) The value of 'K' has been initialized Does tuple contain the K value ? True
코드 설명
- 튜플을 정의한 뒤 콘솔에 출력합니다.
- 찾고자 하는 값 'K'를 초기화합니다.
- 람다 함수를 통해 튜플의 각 요소가 K와 같은지 판별하는 조건을 정의합니다.
map함수가 이 조건을 튜플의 모든 요소에 적용합니다.any메서드가 그 결과 중 True가 있는지 최종 검사합니다.- 검사 결과는 변수에 할당되며, 이 변수가 콘솔에 출력됩니다.
더 간단한 대안: in 연산자
실무에서는 위 방법보다 in 연산자를 사용하는 것이 훨씬 간결하고 가독성이 좋습니다. 아래와 같이 한 줄로 동일한 결과를 얻을 수 있습니다.
my_result = K in my_tuple print(my_result) # True
다만, 람다·map·any 조합은 단순히 값의 존재 여부뿐 아니라 특정 조건을 만족하는 요소(예: 짝수인지, 범위 내에 있는지 등)를 검사할 때 확장성 있게 활용할 수 있다는 장점이 있습니다. 상황에 맞는 방법을 선택해 사용하시기 바랍니다.