HELP PLEASE printing single characters!

Larry Hudson orgnut at yahoo.com
Thu Dec 3 23:08:22 EST 2015


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 -=-




More information about the Python-list mailing list