在Python中从一行随机抽取一个单词?

2024-03-29 11:22:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我该如何选择一行,并选择该行上的所有单词,然后使用一组打印到屏幕上。到目前为止,我得到的是:

import random

test = ['''
line 1
line 2
line 3
line 4
line 5
line 6
''']
print (random.choice(test))

Tags: testimport屏幕linerandom单词printchoice
2条回答

我想这正符合你的要求:

print random.choice(test[0].split('\n'))
line 5

不过,我有一种感觉,你想做的不止这些。在

我怀疑你想随机地选择它们而不需要替换;如果你所做的只是随机选择单词,比如

do until set empty
   prick a random word and print it

它将(a)不终止,(b)平均每1/n次为n个单词重复单词。在

使用Python集是很有吸引力的,但是不方便从集合中随机选择一个项目,因为它不是有序的。(你可能会提出这样一个例子,set#pop会起作用,因为它接受任意的下一个项目,但是如果我在评分,我就不会给予充分的信任。)另一方面,描述是一个集合。在

所以我会这样做:

首先把这些项目放入一个列表中。请注意,您已经将一个包含10行的字符串放入列表中,即您的列表的长度为1。我敢打赌你最好像

^{pr2}$

接下来,使用choice作为

word = random.choice(words)

打印出来

print word

把它从名单上删除

words.remove(word)

把它放进一个循环中,直到你的话用完为止。你会得到这样的信息:

>>> import random
>>> words = ['a', 'b', 'c' ]
>>> while len(words) > 0:
...    word = random.choice(words)
...    print word
...    words.remove(word)
... 
b
a
c

gnibbler指出你也可以

import random
words = [ ... ]
shuf = random.shuffle(words)
for i in shuf: 
   print i

但这并不是将列表视为一个集合;它取决于shuffle是否有一个隐式的顺序集。在

相关问题 更多 >