[파이썬][리스트] 리스트의 메모리 할당 방법과 예제

파이썬의 리스트는 동적 배열(dynamic array)로 구현되어 있습니다. 동적 배열은 크기가 자동으로 조절되는 배열로, 원소를 추가하거나 삭제할 때 필요한 메모리를 할당하거나 해제하여 배열의 크기를 유연하게 관리합니다.

리스트의 메모리 할당 방법은 다음과 같습니다:

  1. 초기 공간 할당: 리스트가 생성될 때, 초기 공간이 할당됩니다. 이 초기 공간은 일반적으로 작은 크기로 시작하며, 원소를 추가할 때마다 공간이 확장될 수 있습니다.

  2. 할당된 공간의 확장: 원소를 추가하거나 할당된 공간을 초과하는 원소를 추가하려고 할 때, 리스트는 더 큰 공간을 할당받습니다. 이때 기존 원소들은 새로운 공간으로 복사됩니다.

리스트 메모리 할당 예제:

import sys

# 빈 리스트 생성
my_list = []

# 리스트에 원소 추가
for i in range(10):
    my_list.append(i)
    print(f"List: {my_list}, Size: {sys.getsizeof(my_list)} bytes")

# 출력:
# List: [0], Size: 72 bytes
# List: [0, 1], Size: 104 bytes
# List: [0, 1, 2], Size: 104 bytes
# List: [0, 1, 2, 3], Size: 104 bytes
# ...

위의 예제에서는 빈 리스트를 생성한 후에 반복문을 사용하여 원소를 추가하면서 리스트의 크기가 어떻게 증가하는지를 확인할 수 있습니다. 원소를 추가할 때마다 리스트의 크기가 일정한 간격으로 늘어나는 것을 볼 수 있습니다. 이러한 동적 배열의 특성을 활용하여 리스트를 효율적으로 관리할 수 있습니다.