[Python-Dev] Retrieve an arbitrary element from a set without removing it (original) (raw)
Raymond Hettinger python at rcn.com
Mon Oct 26 08:29:36 CET 2009
- Previous message: [Python-Dev] Retrieve an arbitrary element from a set without removing it
- Next message: [Python-Dev] Retrieve an arbitrary element from a set without removing it
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[John Arbash Meine]
So 'for x in s: break' is about 2x faster than next(iter(s)) and 3x faster than (iter(s).next()).
The first version uses direct calls for the for-loop opcodes. The other two have to do functions/method look-up and make a pure python function call (neither is very fast).
FWIW, a "choose" method had been previously proposed, discussed and rejected.
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.
Raymond
- Previous message: [Python-Dev] Retrieve an arbitrary element from a set without removing it
- Next message: [Python-Dev] Retrieve an arbitrary element from a set without removing it
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]