On 03Dec2013 14:43, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Tue, Dec 3, 2013 at 2:13 PM, Cameron Simpson <c...@zip.com.au> wrote: > > On 03Dec2013 12:18, Helmut Jarausch <jarau...@igpm.rwth-aachen.de> wrote: > >> I'd like to extracted elements from a heapq in a for loop. > >> I feel my solution below is much too complicated. > >> How to do it more elegantly? > > > > I can't believe nobody has mentioned PriorityQueue. > > As far as I'm aware, the only advantage of PriorityQueue over heapq is > that the former is thread-safe, which does not appear to be relevant > here. I haven't tested it for speed, but I imagine it would be a fair > bit slower, mostly thanks to the locking it needs to do.
I could claim I do a lot of multithreaded stuff, which is true. But really I just prefer the put/get abstraction. A heapq is very overtly a heap manipulator applied to an arbitrary list. A Queue is more self contained, for all that it is the same thing happening inside. Cheers, -- Cameron Simpson <c...@zip.com.au> "Are we alpinists, or are we tourists" followed by "tourists! tourists!" - Kobus Barnard <ko...@cs.sfu.ca> in rec.climbing, on things he's heard firsthand -- https://mail.python.org/mailman/listinfo/python-list