2011-10-14 30 views
2
import random 
mylist = ['anthony', 'kris', 'james', 'vinny', 'joe'] 
randomList1 = random.randrange(0,len(mylist)) 
randomList2 = random.randrange(0,len(mylist)) 
name2 = mylist[randomList1] 
name3 = mylist[randomList2] 
print 'The group will consist of', name2, 'and', name3,'. ' 

是否有問題的代碼,這不適合我,但這樣做的人試圖從mylist打印兩個隨機名稱,但當然與當前代碼它偶爾會打印兩個相同的從一組名稱中打印兩個隨機的,不同的名字

給出的解決方案here可能有一些用於回答,但我已經嘗試了幾件事來幫助他,但我不是蟒蛇專家,我不能思考直在這一刻。

回答

0

挑選名字後,將其從列表中刪除並從該新列表中選擇一個隨機名稱。

2
>>> from random import sample 
>>> mylist = ['anthony', 'kris', 'james', 'vinny', 'joe'] 
>>> sample(mylist,2) 
['kris', 'vinny'] 
8

使用random.sample

>>> import random 
>>> mylist = ['anthony', 'kris', 'james', 'vinny', 'joe'] 
>>> random.sample(mylist, 2) 
['james', 'vinny'] 
+0

您的目標是最真實的+1文檔鏈接 –

2

您可以使用random.sample設置k = 2

random.sample(population, k) 

]選擇ķ從人口序列獨特的隨機元素。

0

如果沒有random.sample,我會建議

import random 
mylist = ['anthony', 'kris', 'james', 'vinny', 'joe'] 
randomList1 = random.randrange(0, len(mylist)) 
randomList2 = random.randrange(0, len(mylist) - 1) 
if randomList2 == randomList1: 
    randomList2 = len(mylist) - 1 
name2 = mylist[randomList1] 
name3 = mylist[randomList2] 
print 'The group will consist of', name2, 'and', name3,'. ' 

我。即,減少一個,如果碰巧與第一個相同,則取最後一個。

相關問題