前言
random.choice()与random.choices()均是从非空序列中随机选择元素的函数,但是他俩也存在很大区别,本文介绍一下两个函数以及他们的区别。
一、random.choice()
random.choice()的函数形式为:random.choice(seq),其中seq为非空序列。
该函数的作用是从非空序列 seq中选择一个随机元素。 如果 seq 为空,则引发 IndexError。
示例代码如下:
import random
A = [1,2,3,4,5,6]
b = random.choice(A)
print(b) # 输出结果为 5
二、random.choices()
虽然random.choice()和random.choices()两个函数名只差一个s,但是差就差在这个s上。random.choices()的函数形式为:choices(seq, weights=None, k=1),其中seq为非空序列,weights用于指定每个元素被选中的概率值,k表示选取元素个数。
random.choices()的作用是从非空序列seq中以weight权重选取k个元素,返回所选取元素的列表(注意:即使只选取一个元素,也是返回列表形式)。
示例代码如下:
import random
A = [1,2,3,4,5,6]
# 随机抽取A中的两个元素,其中抽取到元素1的概率为0.1,抽取到元素2的概率为0.3
# 抽取到元素3的概率为0.2,抽取到元素4的概率为0.2
# 抽取到元素5的概率为0.1,抽取到元素6的概率为0.1
b = random.choices(A, weights = [0.1, 0.3, 0.2, 0.2, 0.1, 0.1], k = 2)
print(b) # 输出结果为 [5, 2]