English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

استخدام heapq لدمج مجموعتين من الأعداد المميزة المميزة في Python؟

في هذا الفصل، سنرى كيف يمكن استخدام مكتبة heapq في Python لدمج قائمتين منقوطة. على سبيل المثال، إذا كان 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(iterable)

تُستخدم لتحويل مجموعة قابلة للإجتياز إلى هيكل داتا مختلطة.

طريقة heapq.heappush(heap,element)

يستخدم هذا الأسلوب لإدراج العنصر في بيانات الHeap. بعد ذلك، يتم إعادة تنظيم الهيكل الكامل للHeap.

أسلوب heapq.heappop(heap)

يستخدم هذا الأسلوب لاسترداد وإزالة العنصر من أعلى بيانات الHeap، ثم إعادة تنظيم البقية.

أسلوب heapq.heappushpop(heap, element)

يستخدم هذا الأسلوب لإدراج وإزالة العناصر في بيانات الHeap في جملة واحدة.

أسلوب heapq.heapreplace(heap, element)

يستخدم هذا الأسلوب لإدراج وإزالة العناصر في بيانات الHeap في جملة واحدة. إنه يزيل العنصر من جذور Heap ثم يدرجه في Heap.

أسلوب heapq.nlargest(n، القابل للتكرار، المفتاح=لا)

يستخدم هذا الأسلوب لاسترداد n من العناصر الأكبر من ال堆.

أسلوب heapq.nsmallest(n، القابل للتكرار، المفتاح=لا)

يستخدم هذا الأسلوب لاسترداد 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('القائمة المرتبة الأولى: ' + 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]
مثل ما تحب