[Tutor] Lists and While Loops

Robert Sjoblom robert.sjoblom at gmail.com
Wed Mar 28 22:14:06 CEST 2012


> I can't figure out
> 1) How to remove "y" from the list and continue the loop; when I use .remove
> etc. it runs once then give me the error that "y" is not in the list.
>
> I imagine the answer is quite simple I'm just getting really frustrated
> trying to get this done any advice is appreciated.

This should tell you why you run into your error:

>>> message = "This is a message."
>>> m_list = message.split()
>>> m_list
['This', 'is', 'a', 'message.']
>>> y = random.choice(m_list)
>>> y
'message.'
>>> m_list.remove(y)
>>> m_list
['This', 'is', 'a']
>>> y
'message.'

You should probably move your y = random.choice() into the while loop.

A simpler way than to remove items from a list is to use random.sample:
>>> message = "This is a message."
>>> m_list = message.split()
>>> random.sample(m_list, len(m_list))
['is', 'This', 'a', 'message.']

-- 
best regards,
Robert S.


More information about the Tutor mailing list