在一個範圍內產生唯一的隨機數
鑑於能夠使用random.randint 產生一個範圍內的隨機數,任務就出現了產生唯一隨機數字列表。雖然迭代條件語句可以作為一種解決方案,但還有一種更優雅的方法可以有效地實現此結果。
隨機取樣
Python 的 random 模組專門提供了一個名為 Sample 的函數設計用於無需更換的取樣。此函數採用總體(例如,數字列表)和樣本大小作為參數,並傳回從總體中隨機選擇的唯一元素的列表。
例如,產生 3 個唯一隨機數的清單在 [1, 100] 範圍內,可以使用以下程式碼:
import random population = range(1, 100) # Initialize the population sample_size = 3 # Set the sample size random_sample = random.sample(population, sample_size)
random_sample 現在將包含指定範圍內的 3個唯一隨機數的列表
處理大小差異
需要注意的是,如果樣本大小超過總體大小,樣本將引發 ValueError。為了處理這種情況,可以使用 try-except 區塊來捕獲異常並進行相應處理。
例如,要嘗試從大小為2 的總體中產生大小為3 的樣本,可以編寫以下程式碼:
try: random.sample(range(1, 2), 3) except ValueError: print('Sample size exceeded population size.')
如果樣本大小大於總體大小,則此程式碼將列印一條資訊性訊息而不是崩潰。
以上是如何在 Python 中產生一定範圍內的唯一隨機數列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!