an element from a set

Carl Banks pavlovevidence at gmail.com
Sat May 15 02:23:19 EDT 2010


On May 14, 9:39 am, Terry Reedy <tjre... at udel.edu> wrote:
> On 5/14/2010 11:24 AM, gerardob wrote:
>
>
>
> > Hello, let S be a python set which is not empty
> > (http://docs.python.org/library/sets.html)
>
> > i would like to obtain one element (anyone, it doesn't matter which one) and
> > assign it to a variable.
>
> > How can i do this?
>
> Depends on whether or not you want the element removed from the set
>
> #3.1
>  >>> s=set(range(10))
>  >>> s
> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>  >>> x=next(iter(s))
>  >>> x
> 0
>  >>> s
> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} # x not removed
>  >>> x = s.pop()
>  >>> x
> 0
>  >>> s
> {1, 2, 3, 4, 5, 6, 7, 8, 9} # x has been removed
>
> The choice of 0 is an implementation artifact. It could have been any
> member.

Which brings up an interesting question: how do you get a random
element from a set?

random.choice(list(s))

is the most straightforward way and will work a lot of the time, but
how would you avoid creating the list?  I can't think of a way off
hand.


Carl Banks




More information about the Python-list mailing list