티스토리 뷰
변수나 자료형 등이 중복으로 나타나는지와 같은 확인을 위해 'in'이라는 키워드를 많이 사용한다. 이때 Set와 List 중 어떤 것을 사용하느냐에 따라 속도의 차이가 매우 커질 수 있다. Set가 List에 비해 일반적으로 빠른 성능을 보이는데 이는 Set가 Hash Table로 구현이 돼있는 반면, List는 배열로 구현돼있기 때문이다.
Hash Table의 경우 검색(lookup), 삽입(isertion), 삭제(deletion)에 대해 O(1)의 시간 복잡도를 갖지만, 배열의 경우 O(n) 을 갖기 때문이다. 아래 코드를 통해 시간의 차이를 확인할 수 있다.
import time
my_list = list(range(1000000))
my_set = set(my_list)
start_time = time.time()
999999 in my_list
end_time = time.time()
list_time = end_time - start_time
start_time = time.time()
999999 in my_set
end_time = time.time()
set_time = end_time - start_time
print("List retrieval time:", list_time)
print("Set retrieval time:", set_time)
Google Colab에서 실행할 시 아래와 같은 결과가 나왔다.
: List retrieval time: 0.01374053955078125
Set retrieval time: 7.700920104980469e-05
반응형
'기술(Tech, IT) > 파이썬(Python)' 카테고리의 다른 글
[Python] set 함수(method, function) (0) | 2023.07.27 |
---|---|
[Python] set (세트) (0) | 2023.07.26 |
[Python] TypeError: 'int' object is not subscriptable (0) | 2023.05.11 |
[Python] 변수 간 복사(대입, copy) (0) | 2023.01.28 |
[Python] Two-Dimensional Array(2차원 배열) (0) | 2022.10.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- join
- Android
- The Economist
- socket programming
- 이코노미스트
- 이코노미스트 에스프레소
- 머신 러닝
- 리트코드
- 투 포인터
- leetcode
- min heap
- 소켓 프로그래밍
- vertex shader
- ml
- The Economist Espresso
- Hash Map
- 딕셔너리
- tf-idf
- machine learning
- Python
- Computer Graphics
- 오블완
- DICTIONARY
- C++
- 파이썬
- defaultdict
- 티스토리챌린지
- I2C
- 안드로이드
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함
반응형