[Python-Dev] Retrieve an arbitrary element from a setwithoutremoving it
Chris Bergstresser
chris at subtlety.com
Fri Nov 6 04:12:45 CET 2009
On Thu, Nov 5, 2009 at 6:30 PM, geremy condra <debatem1 at gmail.com> wrote:
> I'm testing the speed because the claim was made that the pop/add
> approach was inefficient. Here's the full quote:
>
>> The obvious way, for newcomers, of achieving the effect is:
>>
>> x = s.pop()
>> s.add(x)
>>
>> ... and that's simply horrible in terms of efficiency. So the
>> "obvious" way of doing it in Python is wrong(TM), and the "correct"
>> way of doing it is obscure and raises misleading exceptions.
I was talking mainly from a theoretical standpoint, and because the
library I'm working on is designed to work seamlessly over the
network. In those cases, where the set the user is working with is
actually a proxy object across the wire, the time to acquire the
locks, remove the object, release the locks, reacquire the locks, add
the object, then rerelease the locks is *significantly* more expensive
than just noting the set hasn't changed and returning a cached object
from it.
-- Chris
More information about the Python-Dev
mailing list