개요
파이썬에는 문자열, 리스트, 튜플 등의 길이를 반환하는 내장 함수 len()이 있습니다. 이번 글에서는 이러한 len() 함수를 내장 함수 없이 직접 구현하는 방법을 살펴보겠습니다. 코드를 보기 전에 먼저 스스로 구현해 보면 학습 효과가 더욱 높아집니다.
구현 단계
- 길이를 측정할 문자열, 리스트, 튜플 등 반복 가능한 객체(이터레이터)를 준비합니다.
- 원하는 이름으로 함수를 정의한 뒤, 해당 이터레이터를 인자로 넘겨 호출합니다.
- 카운트 변수를 0으로 초기화합니다.
- 반복문을 통해 객체의 끝에 도달할 때까지 순회합니다.
- 요소를 하나씩 지날 때마다 카운트를 1씩 증가시킵니다.
- 순회가 끝나면 최종 카운트 값을 반환합니다.
예제 코드
## 이터레이터의 길이를 계산하는 함수
def length(iterator):
## 카운트를 0으로 초기화
count = 0
## 이터레이터를 순회하면서
for item in iterator:
## 카운트 증가
count += 1
## 이터레이터의 길이 반환
return count
if __name__ == "__main__":
## 사용자로부터 입력 받기
iterator = input("Enter a string:- ")
## length 함수를 호출하여 결과 출력
print(f"Length of {iterator} is {length(iterator)}")위 프로그램을 실행하면 다음과 같은 결과를 확인할 수 있습니다.
실행 결과
Enter a string:- tutorialspoint Length of tutorialspoint is 14
추가 팁
위에서 작성한 length() 함수는 문자열뿐만 아니라 리스트, 튜플, 집합(set), 딕셔너리 등 반복 가능한(iterable) 모든 객체에 동일하게 적용할 수 있습니다. 예를 들어 length([1, 2, 3, 4])를 호출하면 4가 반환됩니다.
다만 실무 환경에서는 C 언어 수준에서 최적화된 내장 함수 len()을 사용하는 것이 성능 면에서 훨씬 유리합니다. 따라서 이번 예제는 파이썬의 반복문과 함수 동작 원리를 이해하기 위한 학습용 구현으로 활용하는 것이 좋습니다.