Python에서는 복합 객체(composite object)의 길이를 반환하는 len() 메서드를 기본적으로 제공합니다. 문자열의 길이를 구하고 싶다면, 해당 문자열을 len() 함수에 인자로 전달하기만 하면 됩니다.
예제
print(len('Hello World!'))출력 결과
12
위 예제에서 공백과 특수문자를 포함한 모든 문자가 개별적으로 계산되어 총 12라는 결과가 출력됩니다. 이처럼 len()은 문자열에 포함된 문자(공백 포함)의 개수를 반환합니다.
문자열의 바이트 크기 구하기
문자열이 실제로 차지하는 메모리 크기(바이트 단위)를 알고 싶다면, sys 모듈의 getsizeof() 메서드를 사용할 수 있습니다.
예제
from sys import getsizeof
getsizeof('Hello World!')출력 결과
33
getsizeof()가 반환하는 값은 문자열 자체의 데이터뿐만 아니라 Python 객체 관리에 필요한 추가 오버헤드까지 포함한 값입니다. 따라서 실제 문자 수인 12보다 훨씬 큰 33바이트가 출력되는 것입니다. 참고로 이 값은 사용 중인 Python 버전이나 실행 환경에 따라 다소 달라질 수 있습니다.
len()과 getsizeof()의 차이점
- len(): 문자열에 포함된 문자의 개수를 반환합니다. 논리적인 길이를 나타냅니다.
- getsizeof(): 객체가 시스템 메모리에서 차지하는 실제 바이트 크기를 반환합니다. 물리적인 메모리 사용량을 나타냅니다.
sys.getsizeof()에 대해 더 자세히 알고 싶다면 Python 공식 문서의 sys.getsizeof() 항목을 참고하시기 바랍니다.