1. 什么是random.choices函數?
random.choices
是Python標準庫中random
模塊提供的一個函數,用于從給定的序列中隨機選擇一個值。這個函數可以用于實現隨機抽樣、按照概率進行選擇等功能。
random.choices(population, weights=None, *, cum_weights=None, k=1)
函數的參數解釋如下:
population
:必需參數,指定要進行選擇的序列(可以是列表、元組等)。weights
:可選參數,指定每個元素的權重(概率)。如果不指定,則默認每個元素的權重相等。cum_weights
:可選參數,指定累計權重。如果指定了cum_weights
,則必需省略weights
參數。k
:可選參數,指定要選擇的元素個數。默認為1,即只選擇一個元素。
2. random.choices函數的用法示例
示例1:從列表中隨機選擇一個元素
import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruit = random.choices(fruits)
print(chosen_fruit)
運行結果
['grape']?
示例2:按照概率從列表中隨機選擇一個元素
import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
weights = [0.1, 0.2, 0.3, 0.2, 0.2]
chosen_fruit = random.choices(fruits, weights=weights)
print(chosen_fruit)
運行結果
['orange']?
示例3:選擇多個元素
import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruits = random.choices(fruits, k=3)
print(chosen_fruits)
運行結果
['banana', 'apple', 'watermelon']?
示例4:利用cum_weights參數選擇元素?
import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
cum_weights = [0.1, 0.4, 0.7, 0.9, 1.0]
chosen_fruit = random.choices(fruits, cum_weights=cum_weights)
print(chosen_fruit)
運行結果
['grape']?
示例5:選擇多個元素并計算選擇的次數
import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruits = random.choices(fruits, k=1000)
fruit_counts = {}for fruit in chosen_fruits:if fruit in fruit_counts:fruit_counts[fruit] += 1else:fruit_counts[fruit] = 1print(fruit_counts)
?運行結果
{'orange': 334, 'grape': 192, 'apple': 203, 'watermelon': 152, 'banana': 119}
3. 總結
random.choices
函數是Python中一個非常有用的函數,可以用于實現隨機抽樣、按照概率進行選擇等功能。通過合理地使用參數,我們可以根據需求選擇單個或多個元素,并可以對選擇的元素進行計數等操作。
通過閱讀本文,你應該對random.choices
函數有了更深入的理解,并可以靈活地將其應用于自己的編程任務中。
4.特別提醒
random.choices 在 k>1 時,也就是選擇的元素個數大于1時,元素是有可能重復的。要想得到一個不重復的隨機數列,請自行編寫方法。
?
?
?