Instead of random.choice
within the for
loop, use random.shuffle
here.
This way, your list is guaranteed to be have all the elements, while also maintaining the requirement of random order:
>>> import random
>>> tab = ["house", "word", "computer", "table", "cat", "enter", "space"]
>>> random.shuffle(tab)
>>> print tab
As for your original code, that will not work, since the if else
block as you've written ensures that no element is added within the list tab
. You could correct that by removing the else block like below:
>>> for i in range(1, 8):
... item = random.choice(["house", "word", "computer", "table", "cat", "enter", "space"])
... if item not in tab:
... print(item)
... tab.append(item)
...
house
cat
space
enter
But now you will need to alter the logic so that the runs in which same value is randomly returned don't affect the number of outputs.