[Python-Dev] Retrieve an arbitrary element from a set without removing it
Willi Richert
w.richert at gmx.net
Fri Oct 23 11:32:45 CEST 2009
Hi,
recently I wrote an algorithm, in which very often I had to get an arbitrary
element from a set without removing it.
Three possibilities came to mind:
1.
x = some_set.pop()
some_set.add(x)
2.
for x in some_set:
break
3.
x = iter(some_set).next()
Of course, the third should be the fastest. It nevertheless goes through all
the iterator creation stuff, which costs some time. I wondered, why the builtin
set does not provide a more direct and efficient way for retrieving some element
without removing it. Is there any reason for this?
I imagine something like
x = some_set.get()
or
x = some_set.pop(False)
and am thinking about providing a patch against setobject.c (preferring the
.get() solution being a stripped down pop()).
Before, I would like to know whether I have overlooked something or whether
this can be done in an already existing way.
Thanks,
wr
More information about the Python-Dev
mailing list