Programming/Python

bisect Module

scii 2013. 5. 17. 21:33


bisect : 리스트를 정렬된 상태로 유지

     목적: 리스트에 아이템이 추가될 때마다 정렬 함수를 호출하지 않고 리스트를 정렬된 상태로 유지


bisect 모듈은 리스트가 정렬된 상태를 유지하면서 아이템을 넣을 수 있게 구현돼있다. 

커다란 리스트에 아이템이 들어올 때마다 반복적으로 정렬하는 것보다 이 방식이 더 효율적일 수 있다.


정렬된 상태로 아이템 추가

insort() 를 사용해 리스트가 정렬된 상태를 유지하면서 아이템을 추가하는 예제


결과


위의 예제는 매우 간단하고 리스트의 크기도 작기 때문에 리스트를 생성한 후에 정렬하는 방식이 더 빠를 것이다. 하지만 리스트의 길이가 매우 길어지면 위와 같은 방식을 사용하는 편이 시간과 메모리 낭비를 비약적으로 줄여줄 수 있다.