الفرق بين المراجعتين ل"Python/heapq/heapreplace"

من موسوعة حسوب
< Python‏ | heapq
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>heapq.heapreplace()‎</code> في بايثون}}</noinclude> تحذف الدالة وتعيد أصغر عنصر في ال...')
 
سطر 19: سطر 19:
 
== القيمة المعادة ==
 
== القيمة المعادة ==
  
تحذف الدالة وتعيد أصغر عنصر في الكومة heap، وتضيف كذلك العنصر الجديد item. لا يؤدي استخدام هذه الدالة إلى إحداث تغير في حجم الكومة. تطلق الدالة الخطأ IndexError في حال كون الكومة فارغة.
+
تحذف الدالة وتعيد أصغر عنصر في الكومة <code>heap</code>، وتضيف كذلك العنصر الجديد <code>item</code>.
  
تؤدي هذه الدالة عملها بكفاءة أكبر من استدعاء الدالة heappop()‎ متبوعة بالدالة heappush()‎، إلى جانب كونها أكثر ملائمة عند التعامل مع كومة ذات حجم ثابت.
+
لا يؤدي استخدام هذه الدالة إلى إحداث تغير في حجم الكومة، وتطلق الدالة الخطأ <code>IndexError</code> في حال كون الكومة فارغة.
  
تعيد عمليتا pop و push معًا عنصرًا من الكومة وتستبدلانه بالعنصر item.
+
تؤدي هذه الدالة عملها بكفاءة أكبر من استدعاء الدالة <code>[[Python/heapq/heappop|heappop()]]</code>‎ متبوعة بالدالة <code>[[Python/heapq/heappush|heappush()]]</code>‎، إلى جانب كونها أكثر ملائمة عند التعامل مع كومة ذات حجم ثابت.
  
يمكن أن تكون القيمة المعادة أكبر من العنصر المضاف، وإن كان هذا أمرًا غير مرغوب به، فيجدر استخدام الدالة heappushpop()‎ عوضًا عن هذه الدالة، حيث تعيد عمليتا push و pop فيها القيمة الأصغر من بين قيمتين، لتترك القيمة الأكبر في الكومة.
+
تعيد عمليتا <code>pop</code> و <code>push</code> معًا عنصرًا من الكومة وتستبدلانه بالعنصر <code>item</code>.
 +
 
 +
يمكن أن تكون القيمة المعادة أكبر من العنصر المضاف، وإن كان هذا أمرًا غير مرغوب به، فيجدر استخدام الدالة <code>[[Python/heapq/heappushpop|heappushpop()‎]]</code> عوضًا عن هذه الدالة، حيث تعيد عمليتا <code>push</code> و <code>pop</code> فيها القيمة الأصغر من بين قيمتين، لتترك القيمة الأكبر في الكومة.
  
 
== أمثلة ==
 
== أمثلة ==

مراجعة 12:44، 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 في توثيق بايثون الرسمي.