[파이썬] 튜플의 필터링과 조건부 순회

파이썬에서 튜플(Tuple)은 변경할 수 없는(immutable) 순서쌍의 집합입니다. 튜플은 다양한 자료형을 포함할 수 있으며, 여러 데이터를 하나로 묶어 관리할 때 사용됩니다.

튜플에 저장된 데이터 중에서 원하는 조건을 만족하는 데이터만 필터링하여 사용하고 싶을 때가 있습니다. 이때 파이썬에서 제공하는 내장 함수와 조건부 순회(Conditional Iteration)을 활용하면 효과적으로 데이터를 필터링할 수 있습니다.

튜플의 필터링 (Filtering a Tuple)

파이썬의 내장 함수 filter()를 사용하여 튜플을 필터링할 수 있습니다. filter() 함수는 두 개의 인자를 받습니다. 첫 번째 인자로는 필터링 조건을 검사하는 함수를 전달하고, 두 번째 인자로는 필터링 대상이 되는 튜플을 전달합니다. 함수의 반환값이 True인 경우에만 해당 요소가 필터링 결과에 포함됩니다.

# 튜플 데이터 생성
my_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

# 짝수만 필터링
filtered_tuple = tuple(filter(lambda x: x % 2 == 0, my_tuple))

print(filtered_tuple)  # (2, 4, 6, 8, 10)

위의 예시에서는 my_tuple에 저장된 숫자 중에서 짝수만 필터링하여 filtered_tuple에 저장하였습니다. 필터링에는 람다(lambda) 함수를 사용하였으며, x % 2 == 0 조건을 만족하는 요소만 포함됩니다.

조건부 순회 (Conditional Iteration)

튜플에 저장된 데이터를 순회하면서 특정 조건을 만족하는 데이터만 처리하고 싶을 때에는 조건부 순회를 활용할 수 있습니다. 파이썬의 리스트 컴프리헨션(List Comprehension)을 사용하면 간결하게 조건부 순회를 구현할 수 있습니다.

# 튜플 데이터 생성
my_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

# 5보다 큰 숫자만 처리하는 조건부 순회
result = [x * 2 for x in my_tuple if x > 5]

print(result)  # [12, 14, 16, 18, 20]

위의 예시에서는 my_tuple에 저장된 숫자 중에서 5보다 큰 숫자만 2배로 처리하고 결과를 리스트로 저장하였습니다. 조건부 순회에는 리스트 컴프리헨션을 사용하였으며, x > 5 조건을 만족하는 데이터만 순회하고 처리합니다.

정리하자면, 파이썬에서는 튜플의 내장 함수 filter()를 통해 데이터를 필터링하고, 조건부 순회를 통해 튜플의 요소를 조건에 따라 처리할 수 있습니다. 이를 활용하면 효율적으로 원하는 데이터를 추출하고 처리할 수 있습니다.