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