Je suppose que vous voulez les prendre sans remplacement au hasard; si tout ce que vous faites est de choisir des mots au hasard, avec quelque chose comme
do until set empty
prick a random word and print it
il (a) pas fin, et (b) répéter des mots en moyenne tous les 1/n fois pour n mots.
Il serait tentant d'utiliser un ensemble de Python, mais incommode il n'y a aucun moyen évident de choisir un élément aléatoire de l'ensemble puisqu'il est pas ordonné. (Vous pourriez faire un cas que set#pop
fonctionnera puisqu'il prend l'article suivant arbitraire, mais si j'évaluais je ne donnerais pas ce plein crédit.) D'un autre côté, la description indique un ensemble.
Je ferais quelque chose comme ceci:
d'abord mettre les éléments dans une liste. Notez que ce que vous avez met une corde avec 10 lignes dans la liste ,, qui est votre liste a une longueur de 1. Je parie que vous êtes mieux comme initialisation
words = [ "test 1","test 2" # and so on
]
Ensuite, sélectionnez vos articles en utilisant comme choice
word = random.choice(words)
Imprimer ce
print word
et le retirer de la liste
words.remove(word)
Mettez ça dans une boucle qui continue jusqu'à ce que vous manquez de mots. Vous obtenez quelque chose comme:
>>> import random
>>> words = ['a', 'b', 'c' ]
>>> while len(words) > 0:
... word = random.choice(words)
... print word
... words.remove(word)
...
b
a
c
gnibbler souligne que vous pourriez aussi avoir
import random
words = [ ... ]
shuf = random.shuffle(words)
for i in shuf:
print i
mais qui ne traite pas la liste comme un ensemble; cela dépend de l'existence d'un ordre implicite défini par shuffle.
Utiliser '.splitlines()'? –
Pourquoi 'tester [0]'? Cela vous donnera le premier caractère de 'test'. –
Copier et coller mon code sous son code me donne la sortie suivante: Dans [7]: print random.choice (test [0] .split ('\ n')) ligne 3 Dans [8]: imprimer random.choice (test [0] .split ('\ n')) ligne 1 Tim, qu'est-ce que vous parlez? – JBWhitmore