티스토리 뷰

[append an element in list] : performance testing
→ creat an empty list, [] and list()
append(element)
 and += [element]
→ 비어있는 list 생성 방법 [], list()의 속도 비교
→ append() 함수와 += []의 속도 비교

시작에 앞서
이 글은 list에 요소 한 개 추가 시 append()를 사용하는 것을 추천합니다.

 

 

*결과값 읽는 법

→ %%timeit

%%timeit

코드를 반복하여 평균 실행 속도를 구하는 코드

 

 

→ %%timeit 결과값

959 ms ± 8.6 ms per loop (mean ± std. dev. of 7 runs, 10 loop each)

10번 반복하여 얻은 평균 실행 속도(959 ms ± 8.6 ms

 

 


append an element in list
  • 비어있는 리스트에 요소 한 개 ([1]) 추가

 

→ [] 대괄호 바인딩 및 += 연산자 

%%timeit
list_=[]
list_+=[1]

 

45.4 ns ± 0.52 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 

 

 [] 대괄호 바인딩 및 append() 함수 

%%timeit
list_=[]
list_.append(1)

 

38.9 ns ± 0.0516 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 

 

→ list() 함수 및 += 연산자

%%timeit
list_=list()
list_+=[1]

 

88.2 ns ± 5.09 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 

 

→ list() 함수 및 append() 함수 

%%timeit
list_=list()
list_.append(1)

 

80.5 ns ± 4.21 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 


결과 분석
  • list() 함수 및 += []
    88.2 ns ± 5.09 ns per loop
  • list() 함수 및 append() 함수 
    80.5 ns ± 4.21 ns per loop
  • [] 대괄호 바인딩 및 += []
    45.4 ns ± 0.52 ns per loop
  • [] 대괄호 바인딩 및 append() 함수 
    38.9 ns ± 0.0516 ns per loop

 

 

빈 리스트 생성 및 요소 한 개 추가는
[] 대괄호를 바인딩하여, append() 함수로 추가하는 것 이 빠르다는 것을 알 수 있다.

 

 


list에 1개 이상의 요소를 추가할 경우
  • 1개 이상의 요소를 추가할 경우 extend([1, 2,..., n]) 또는 += [1, 2, ..., n]로 가능하다.

→ extend([1, 2, ..., n])

%%timeit
list_ =[]
list_.extend([range(100_000_000_000_000)])

 

163 ns ± 1.9 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 

 

→ += [1, 2, ..., n]

%%timeit
list_ =[]
list_+=[range(100_000_000_000_000)]

 

170 ns ± 3.6 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

 

 


+= [elements] 보다 append(), extend()과 같은 내부 함수를 사용하는 것이 빠르다.

 

내용 정리
  • 코딩 실행 속도를 빠르게 해야 할 경우 : [] 대괄호 바인딩 및 append() 사용을 추천한다.
  • 본 내용에서 비교한 방법은 구현에 따라 차이가 있을 수 있다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함