الدالة heapq.heapreplace()
في بايثون
تحذف الدالة وتعيد أصغر عنصر في الكومة، وتضيف كذلك العنصر الجديد المعطى.
البنية العامة
heapq.heapreplace(heap, item)
المعاملات
heap
الكومة التي ستُدرج فيها قيمة المعامل item
.
item
القيمة المراد إدراجها في الكومة.
القيمة المعادة
تحذف الدالة وتعيد أصغر عنصر في الكومة heap
، وتضيف كذلك العنصر الجديد item
.
لا يؤدي استخدام هذه الدالة إلى إحداث تغير في حجم الكومة، وتطلق الدالة الخطأ IndexError
في حال كون الكومة فارغة.
تؤدي هذه الدالة عملها بكفاءة أكبر من استدعاء الدالة heappop()
متبوعة بالدالة heappush()
، إلى جانب كونها أكثر ملائمة عند التعامل مع كومة ذات حجم ثابت.
تعيد عمليتا pop
و push
معًا عنصرًا من الكومة وتستبدلانه بالعنصر item
.
يمكن أن تكون القيمة المعادة أكبر من العنصر المضاف، وإن كان هذا أمرًا غير مرغوب به، فيجدر استخدام الدالة heappushpop()
عوضًا عن هذه الدالة، حيث تعيد عمليتا push
و pop
فيها القيمة الأصغر من بين قيمتين، لتترك القيمة الأكبر في الكومة.
أمثلة
يبين المثال التالي آلية عمل التابع:
>>> import heapq
>>> li = [5, 7, 9, 1, 3]
>>> print(list(li))
[5, 7, 9, 1, 3]
>>> heapq.heapreplace(li, 4)
5
>>> print(list(li))
[7, 1, 9, 4, 3]
انظر أيضًا
- الدالة
heappushpop
(): تضيف الدالة العنصر المعطى إلى الكومة، ثم تحذف وتعيد أصغر عنصر في الكومة.
مصادر
صفحة General calendar-related functions في توثيق بايثون الرسمي.