نقارن عمليتين على كومتين متطابقتين. [1] [2]
الخلاصة السريعة
heapreplace يبقي العدد الجديد 1 هنا؛ heappushpop يعيده. [1] [2]
المثال
import heapq as q for f in (q.heappushpop,q.heapreplace): h=[3,5,7] print(f(h,1)) print(sorted(h))
لماذا يختلف الباقي؟
العدد هنا أصغر من الجذر القديم. heappushpop يضيف ثم يستخرج الأصغر؛ لذلك يخرج العدد الجديد. heapreplace يستخرج الأصغر الموجود ثم يضيف الجديد؛ لذلك يخرج 3 ويبقى 1. [1] [2]

حدود المقارنة
ننشئ قائمة جديدة لكل عملية. sorted لا يغير الكومة. إذا كان المدخل 8، تعيد العمليتان 3 ويكون الباقي 5,7,8. على كومة فارغة، يعيد heappushpop المدخل ويبقيها فارغة، بينما يرفع heapreplace خطأ IndexError. [1] [2]
المراجع
- Python 3.12: heapq
- CPython 3.12.14: _heapqmodule.c
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
