티스토리 뷰
Python/Analysis to Python
[append an element in list] : 속도 비교(performance testing )
샰롯 2022. 6. 7. 01:27[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() 사용을 추천한다.
- 본 내용에서 비교한 방법은 구현에 따라 차이가 있을 수 있다.
'Python > Analysis to Python' 카테고리의 다른 글
[f-string] : 문자열 포맷팅 딥하게 알아보기 + Tip (0) | 2022.07.27 |
---|---|
[split] : 문자열을 나눠주는 함수 (0) | 2022.07.10 |
[eval, exec] : 문자열을 코드로 실행하는 함수 (0) | 2022.05.30 |
[sort, sorted] : 정렬 함수 (0) | 2022.05.29 |
[change type of whole list] : 속도 비교(performance testing ) (0) | 2022.05.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- _meaning
- asd ad
- 이스케이프 코드
- 재귀?
- recursive function
- parameters
- 재귀함수 설명
- underscore
- recursive
- anaconda
- 콘다
- 백준
- 파이썬 변수
- arguments
- sdsad
- 덮어쓰기
- 변수 덮어쓰기
- 이중 프린트
- print()
- 재귀함수 이해
- conda
- 파이썬
- _의미
- Python
- sep=
- sad asd
- matplotlib
- d asd asd
- 연산속도
- list comprehension
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함