我有一個這樣的名單:如何在python中生成隨機顏色時允許重複?
colors = ["red", "blue", "yellow", "green", "purple", "orange"]
answers = random.sample(colors, 4)
我有麻煩試圖找出如何讓喜歡紅色,紅色,藍色,黃色生成隨機顏色時重複。
我有一個這樣的名單:如何在python中生成隨機顏色時允許重複?
colors = ["red", "blue", "yellow", "green", "purple", "orange"]
answers = random.sample(colors, 4)
我有麻煩試圖找出如何讓喜歡紅色,紅色,藍色,黃色生成隨機顏色時重複。
您可以嘗試
[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']
替代方法(只是爲了好玩,我會實際使用random.choice
),允許繼續使用random.sample
是這樣你就重複每個選項的次數等於使用序列乘法所需物品的數量,確保它可以(可能)每次都選擇,並且絕對可用於重複選擇:
answers = random.sample(colors * 4, 4)
當然,這只是爲了好玩,可能值得注意的是,這種方法在所有可能的結果之間不會有一個平坦的概率分佈 - 具有更多重複的「樣本」的可能性越來越小。 –
@ZeroPiraeus:亞爾。它並不完全平坦。這在某些情況下可能是有益的,因爲尋找隨機輸出的人(不是隨機加密的,只是隨機的分類)通常不希望看到過多的重複(它看起來「非隨機的,即使它是隨機的也是如此)所以偏向於「更隨機看」的輸出而不會完全阻止任何給定的結果可能是一件好事。 – ShadowRanger
工程。謝謝 –