我將如何選擇一行,然後選取該行上的所有單詞,然後使用一組打印到屏幕上。這是我到目前爲止有:在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