
110
고성능 파이썬(2판)
예제
3-8
리스트와 튜플의 인스턴스 생성 시간 비교
>>>
%timeit l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
95 ns ± 1.87 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
>>>
%timeit t = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
12.5 ns ± 0.199 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)
3.3
마치며
리스트와 튜플은 정렬된 데이터에 적합한 빠르고 오버헤드가 적은 자료구조다. 데이터가 연속
된 메모리에 있으므로 특정 항목을 바로 읽어 탐색 문제를 회피할 수 있다. 정렬 방식을 미리
안다면 선형 탐색의
O
(
n
)
시간 대신
O
(
1
)
의 시간복잡도로 항목을 찾을 수 있다.
4
리스트를 사
용할 때는 크기 변경으로 발생한 초과 할당까지 고려해서 메모리에 데이터를 저장할 수 있을지
신경 써야 한다. 반면 튜플은 빠르게 생성할 수 있고 리스트보다 메모리 부담이 적은 대신에 내
용을 변경할 수 없다.
6
.
2
절에서는 리스트를 미리 할당해서 잦은
append
호출의 부담을 더는
방법을 포함하여, 이 문제를 관리하는 최적화 기법을 몇 가지 살펴본다.