On Sat, May 15, 2010 at 11:53 AM, Carl Banks <pavlovevide...@gmail.com>wrote:

> On May 14, 9:39 am, Terry Reedy <tjre...@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.
>
> How about random.sample(s, 1)[0]? Is it inefficient?

>
> Carl Banks
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
Regards
Shashank Singh
Senior Undergraduate, Department of Computer Science and Engineering
Indian Institute of Technology Bombay
shashank.sunny.si...@gmail.com
http://www.cse.iitb.ac.in/~shashanksingh
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to