الفرق بين المراجعتين لصفحة: «Python/heapq/heapreplace»

من موسوعة حسوب
< Python‏ | heapq
لا ملخص تعديل
لا ملخص تعديل
 
سطر 50: سطر 50:
== مصادر ==
== مصادر ==
[https://docs.python.org/3/library/heapq.html#heapq.heapreplace صفحة General calendar-related functions في توثيق بايثون الرسمي.]
[https://docs.python.org/3/library/heapq.html#heapq.heapreplace صفحة General calendar-related functions في توثيق بايثون الرسمي.]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]

المراجعة الحالية بتاريخ 12:45، 6 أغسطس 2018


تحذف الدالة وتعيد أصغر عنصر في الكومة، وتضيف كذلك العنصر الجديد المعطى.

البنية العامة

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 في توثيق بايثون الرسمي.