I totally agree regarding the efficiency. Code that relies on a fast "non- removing .pop()" probably has other worse bottlenecks that should be targetted first.
This would, however, relief every programmer who needs this the first time in his Python experience, to research how this could be most reasonably done. And it is more of a style question. I find the "for x in some_set: break" rather ugly.
Am Montag, 26. Oktober 2009 08:29:36 schrieben Sie:
I don't find the optimization issue to be very interesting in the case of retrieving an arbitrary element. This isn't the kind of thing that typically appears in an inner-loop; afterall, if you've retrieved an arbitrary element without removing it, then successive calls to "choose" could potentially retrieve the exact same element again and again.