我将如何选择一行,然后选取该行上的所有单词,然后使用一组打印到屏幕上。这是我到目前为止有:在Python中单行选择一个随机单词?
import random
test = ['''
line 1
line 2
line 3
line 4
line 5
line 6
''']
print (random.choice(test))
我将如何选择一行,然后选取该行上的所有单词,然后使用一组打印到屏幕上。这是我到目前为止有:在Python中单行选择一个随机单词?
import random
test = ['''
line 1
line 2
line 3
line 4
line 5
line 6
''']
print (random.choice(test))
我认为这确实你问什么:
print random.choice(test[0].split('\n'))
line 5
我有一种感觉,你希望做的比这多一点,虽然。
我怀疑你想随机挑选它们而没有更换;如果你要做的就是选择随机的话,喜欢的东西
do until set empty
prick a random word and print it
会(一)未终止,及(b)在每个1/n倍平均重复字N个字。
这将是诱人的使用Python集,但不方便没有明显的方式从集中选择一个随机项,因为它没有排序。 (您可能会提出一个案例,set#pop
将起作用,因为它需要任意的下一个项目,但如果我正在评分,我不会给出完整的功劳。)另一方面,描述说明了一个集合。
所以我会这样做:
首先把项目放到一个列表中。请注意,您有什么把一个字符串与10号线到列表中,,这是您的任务列表长度1.我敢打赌,你最好初始化像
words = [ "test 1","test 2" # and so on
]
接下来,选择使用choice
为您的项目
word = random.choice(words)
打印
print 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设置的隐式顺序。
FTFY:Python中没有'println','len()'是一个自由函数。我认为你错误地用Ruby编码? – zwol 2010-12-13 05:35:40
变老不适用于sissies。 – 2010-12-13 05:40:56
为什么不使用random.shuffle? – 2010-12-13 05:45:12
使用'.splitlines()'? – 2010-12-13 05:59:48
为什么'测试[0]'?这会给你'test'的第一个字符。 – 2010-12-13 07:25:42
复制和粘贴他的代码我得到以下输出下面我的代码: 在[7]:打印random.choice(试验[0] .split( '\ n')) 线3 在[8]:打印random.choice(test [0] .split('\ n')) line 1 Tim,你在说什么? – JBWhitmore 2010-12-14 00:37:22