On 12/02/2015 04:08 PM, John Strick wrote:
On Wednesday, December 2, 2015 at 12:58:30 PM UTC-6, Dylan Riley wrote:
hi all,
I have been trying to figure out all day why my code is printing single 
characters from my list when i print random elements using random.choice the 
elements in the list are not single characters for example when i print, 
print(LIST[random.choice]) i get:
["e", "x", "a", "m", "p", "l", "e"] when i should get ["example"].

my code is:
#Create a program that prints a list of words in random order.
#The program should print all the words and not repeat any.

import random

LIST = ["blue ", "red ", "yellow ", "green ", "orange "]
order = []

print("This game will print a random order of colours")
print("The list is", LIST)
input("press enter to start")



while LIST != []:
     choice = random.choice(LIST)
     order += choice
     while choice in LIST:
         LIST.remove(choice)
print(order)



input("press enter to exit")

thanks in advance guys

You could just shuffle the list first, then loop through it. This will 
guarantee that each color is only used once.

Not quite.  Only if the original list has no repetitions.

My personal approach would be to use a set to eliminate the duplicates, convert back to a list and shuffle that.

no_reps = list(set(LIST))
random.shuffle(no_reps)
print(no_reps)   #  Or use loop to print one-per-line

     -=- Larry -=-

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to