python中random.choices各参数的含义
时间: 2023-07-11 21:48:34 浏览: 199
在Python的random模块中,random.choices()函数用于从一个序列中随机选择元素,可以重复选择,且可以指定每个元素被选中的概率。它的语法如下:
```python
random.choices(population, weights=None, cum_weights=None, k=1)
```
其中,参数population是一个非空的序列,可以是一个列表、元组、字符串或其他可迭代对象,表示要从中进行选择的序列。
参数weights是一个序列,用于指定每个元素被选中的相对概率。如果不指定该参数,则每个元素被选中的概率相等。
参数cum_weights是一个序列,用于指定每个元素被选中的累计概率。如果同时指定了weights和cum_weights参数,则会忽略weights参数。
参数k是一个整数,表示要选择的元素个数。如果不指定该参数,则默认为1。
例如,如果要从一个列表中随机选择两个元素,可以这样写:
```python
import random
my_list = [1, 2, 3, 4, 5]
random_elements = random.choices(my_list, k=2)
print(random_elements)
```
这段代码会输出my_list中的两个随机元素,每个元素被选中的概率相等。
如果要指定每个元素被选中的相对概率,可以这样写:
```python
import random
my_list = [1, 2, 3, 4, 5]
weights = [1, 2, 3, 4, 5]
random_elements = random.choices(my_list, weights=weights, k=2)
print(random_elements)
```
这段代码会输出my_list中的两个随机元素,其中每个元素被选中的概率与weights中的相应元素成比例。
注意:参数weights和cum_weights的长度必须与population参数的长度相同,否则会抛出ValueError异常。
阅读全文