[Python] 리스트(list) 성능
·
Python/Python
리스트 리스트는 동적 배열로 크기를 자유자재로 조절할 수 있는데 이러한 변경 가능한 특성 때문에 리스트는 메모리와 추가 연산을 필요로 한다. 리스트에 object 추가 시 기존에 object들과 추가되는 object를 새로운 리스트를 추가하여 생성한다. 새로 추가된 리스트의 크기는 기존 N개와 추가되는 1개 더하여 N+1이 아니라 M개 (M > N+1) 의 크기를 가진다. 크기에 여유를 두는 이유는 메모리 할당과 복사 요청 횟수를 줄이기 위하여다. 리스트의 크기 1을 할당한 이후 크기는 동일하다가 5를 할당하니 크기가 커진다. 이는 새로 리스트를 생성한 것. a = [] print('0', sys.getsizeof(a)) a.append(1) print('1', sys.getsizeof(a)) a.app..
[Python] 검색 방법 profile 해보기
·
Python/Python
이해하기 어느 search 가 빠르고 느린지 확인 하는 방법 import csv def search_fast(haystack, needle): for item in haystack: if item == needle: return True return False def search_slow(haystack, needle): is_exist = False for item in haystack: if item == needle: is_exist = True return is_exist def search_unknown_1(haystack, needle): return any((item == needle for item in haystack)) def search_unknown_2(haystack, needle..