Josiah Carlson wrote: Scott David Daniels wrote:
Raymond Hettinger wrote:
if not heap or item < heap[0]: return item return heapreplace(heap, item) Better is: if heap and heap[0] < item: return heapreplace(heap, item) return item The or method short-circuits too....
Sorry, I was (inadvertently) being cryptic: I was avoiding the heapreplace call if item == heap[0]. Since "<" is the native ordering comparison, I reordered the comparison to continue using "<". While I was rearranging I dropped the "not" which was probably a useless micro-optimization, but I usually avoid not for clarity for myself these days. I wouldn't presume to correct just to fiddle out the not. For the list, I'd probably have done better simply to write:
... Better is: if not heap or item <= heap[0]: return item return heapreplace(heap, item) because you want to avoid calling heapreplace if possible.
-- -Scott David Daniels Scott.Daniels@Acm.Org
participants (1)
-
Scott David Daniels