2017-03-10 181 views

回答

2

您可以嘗試

[random.choice(colors) for _ in range(4)] 

這裏random.choice(colors)主從colors列表中的單個隨機顏色。使用列表理解將四次調用該函數並將結果收集到一個新列表中。

運行示例:

>>> colors = ["red", "blue", "yellow", "green", "purple", "orange"] 
>>> import random 
>>> [random.choice(colors) for _ in range(4)] 
['red', 'green', 'orange', 'orange'] 
+0

工程。謝謝 –

1

替代方法(只是爲了好玩,我會實際使用random.choice),允許繼續使用random.sample是這樣你就重複每個選項的次數等於使用序列乘法所需物品的數量,確保它可以(可能)每次都選擇,並且絕對可用於重複選擇:

answers = random.sample(colors * 4, 4) 
+1

當然,這只是爲了好玩,可能值得注意的是,這種方法在所有可能的結果之間不會有一個平坦的概率分佈 - 具有更多重複的「樣本」的可能性越來越小。 –

+1

@ZeroPiraeus:亞爾。它並不完全平坦。這在某些情況下可能是有益的,因爲尋找隨機輸出的人(不是隨機加密的,只是隨機的分類)通常不希望看到過多的重複(它看起來「非隨機的,即使它是隨機的也是如此)所以偏向於「更隨機看」的輸出而不會完全阻止任何給定的結果可能是一件好事。 – ShadowRanger