이 섹션에서는 Python의 heapq 모듈을 사용하여 두 개의 정렬된 목록을 결합하는 방법을 살펴보겠습니다. 예를 들어 list1 = [10, 20, 30, 40]이고 list2 = [100, 200, 300, 400, 500]이면 연결 후 list3 = [10, 20, 30, 40, 100, 200을 반환합니다. , 300 , 400, 500]
heapq 모듈을 사용하여 이 작업을 수행합니다. 이 모듈은 표준 라이브러리 모듈로 Python과 함께 제공됩니다. 따라서 사용하기 전에 가져와야 합니다.
import heapq
heapq 모듈에는 몇 가지 속성이 있습니다. 다음과 같습니다. &
heapq.heapify 메소드(반복 가능)
반복 데이터 세트를 힙 데이터 구조로 변환하는 데 사용됩니다.
heapq.heappush 메서드(힙, 항목)
이 메서드는 항목을 힙에 삽입하는 데 사용됩니다. 그런 다음 전체 힙 구조를 다시 복사합니다.
heapq.heappop 메소드(힙)
이 메소드는 힙 상단에서 항목을 반환 및 제거하고 나머지에 대해 heapify를 수행하는 데 사용됩니다.
heapq.heappushpop 메소드(힙, 요소)
이 메소드는 요소를 삽입하고 붙여넣는 데 사용됩니다. 하나의 명령문.
heapq.heapreplace 메소드(힙, 요소)
이 메소드는 단일 명령문에 요소를 삽입하고 붙여넣는 데 사용됩니다. 힙 루트에서 요소를 제거한 다음 해당 요소를 힙에 삽입합니다.
heapq.nlargest(n, iterable, key = 없음) 메서드
이 메서드는 다음 작업에 사용됩니다. 힙에서 가장 큰 n개의 요소를 반환합니다.
heapq.nsmallest 메소드(n, repeatable, key = None)
힙에서 가장 작은 n개의 요소를 리턴하는 메소드입니다.
코드 예제
import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] firs t_list = 정렬됨(first_list) second_list = 정렬됨(second_list) print(`첫 번째 정렬된 목록:` + str(first_list)) print(`두 번째 정렬된 목록:` + str (second_list)) final_list = list (heapq.merge (first_list, second_list)) print (`최종 목록:` + str (final_list))
출력
첫 번째 정렬된 목록: [12, 15, 20, 21, 36, 45, 63, 74, 95] 두 번째 정렬된 목록: [13, 15, 42, 54, 69] 마지막 목록: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]