इस खंड में हम देखेंगे कि heapq मॉड्यूल का उपयोग करके पायथन में दो सॉर्टेड सूचियों को कैसे मर्ज किया जा सकता है। उदाहरण के लिए, यदि list1 = [10, 20, 30, 40] और list2 = [100, 200, 300, 400, 500], तो मर्ज करने के बाद यह list3 = [10, 20, 30, 40, 100, 200, 300, 400, 500] लौटाएगा।
इस कार्य को करने के लिए, हम heapq मॉड्यूल का उपयोग करेंगे। यह मॉड्यूल पायथन के साथ स्टैंडर्ड लाइब्रेरी मॉड्यूल के रूप में आता है। इसलिए इसका उपयोग करने से पहले हमें इसे इम्पोर्ट करना होगा।
import heapq
heapq मॉड्यूल के कुछ गुण हैं। ये नीचे दिए गए हैं -
- heapq.heapify(iterable) - इटरेबल डेटासेट को हीप डेटा स्ट्रक्चर में बदलने के लिए उपयोग किया जाता है।
- heapq.heappush(heap, element) - इस मेथड का उपयोग हीप में तत्व डालने के लिए किया जाता है। उसके बाद पूरे हीप स्ट्रक्चर को रि-हीप करें।
- heapq.heappop(heap) - इस मेथड का उपयोग हीप के शीर्ष से तत्व को लौटाने और हटाने के लिए किया जाता है और शेष तत्वों पर हीपिफाई करता है।
- heapq.heappushpop(heap, element) - इस मेथड का उपयोग एक स्टेटमेंट में तत्व डालने और पॉप करने के लिए किया जाता है।
- heapq.heapreplace(heap, element) - इस मेथड का उपयोग एक स्टेटमेंट में तत्व डालने और पॉप करने के लिए किया जाता है। यह हीप के रूट से तत्व को हटाता है, फिर तत्व को हीप में डालता है।
- heapq.nlargest(n, iterable, key=None) - इस मेथड का उपयोग हीप से n सबसे बड़े तत्व लौटाने के लिए किया जाता है।
- heapq.nsmallest(n, iterable, key=None) - इस मेथड का उपयोग हीप से n सबसे छोटे तत्व लौटाने के लिए किया जाता है।
उदाहरण कोड
import heapq
first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36]
second_list = [42, 13, 69, 54, 15]
first_list = sorted(first_list)
second_list = sorted(second_list)
print('First sorted list: ' + str(first_list))
print('Second sorted list: ' + str(second_list))
final_list = list(heapq.merge(first_list, second_list))
print('The final list: ' + str(final_list))
आउटपुट
First sorted list: [12, 15, 20, 21, 36, 45, 63, 74, 95] Second sorted list: [13, 15, 42, 54, 69] The final list: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]