파이썬의 튜플(tuple)은 순서가 있으며 한 번 생성되면 변경할 수 없는 불변(immutable) 자료형입니다. 흥미로운 점은 튜플이 리스트를 요소로 가질 수도 있다는 것입니다. 이번 글에서는 리스트로 구성된 튜플이 주어졌을 때, 그 안에 포함된 리스트의 개수를 구하는 두 가지 방법을 알아보겠습니다.
1. len() 함수 사용하기
가장 간단한 방법은 내장 함수인 len()을 활용하는 것입니다. 튜플의 각 요소가 곧 리스트이므로, len() 함수는 해당 튜플에 포함된 리스트의 개수를 그대로 반환해 줍니다.
예제
tupA = (['a', 'b', 'x'], [21,19])
tupB = (['n', 'm'], ['z','y', 'x'], [3,7,89])
print("tupA에 포함된 리스트 개수 :\n" , len(tupA))
print("tupB에 포함된 리스트 개수 :\n" , len(tupB))실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
tupA에 포함된 리스트 개수 : 2 tupB에 포함된 리스트 개수 : 3
2. 사용자 정의 함수(UDF) 활용하기
이 작업을 여러 번 반복해서 수행해야 한다면, 함수를 직접 정의해 두는 것이 효율적입니다. 전달받은 객체가 튜플인지 isinstance()로 검사한 뒤, 맞다면 len() 함수를 적용해 리스트의 개수를 계산하도록 구현할 수 있습니다.
예제
tupA = (['a', 'b', 'x'], [21,19])
tupB = (['n', 'm'], ['z','y', 'x'], [3,7,89])
def getcount(tupl):
if isinstance(tupl, tuple):
return len(tupl)
else:
pass
print("tupA에 포함된 리스트 개수 :\n" , getcount(tupA))
print("tupB에 포함된 리스트 개수 :\n" , getcount(tupB))실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
tupA에 포함된 리스트 개수 : 2 tupB에 포함된 리스트 개수 : 3
정리하면, 튜플에 담긴 리스트의 개수는 len() 함수 하나만으로도 쉽게 구할 수 있으며, 반복적인 사용이 필요하다면 자료형 검사까지 포함한 사용자 정의 함수를 만들어 재사용성을 높이는 것이 좋습니다.