📅  最后修改于: 2023-12-03 14:46:19.249000             🧑  作者: Mango
在Python中,我们常常需要从一个序列中选择若干个元素。常见的需求包括:从列表中随机选择几个数字、从文本集合中随机选择几个词汇、从交易记录中随机抽取几个数据点等。这个需求可以使用Python的random
模块中的sample
函数实现。
下面是一个例子,演示如何从一个数字列表中选择5个数字,且不允许重复选择。
import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
selected = random.sample(numbers, 5)
print(selected)
输出结果为:
[9, 8, 7, 10, 4]
值得注意的是,random.sample
函数实现的是不替换的抽样(sampling without replacement),即在一个序列中选择若干个元素,已选择过的元素将不再出现在后面的选择中。
如果你需要进行可重复抽样(sampling with replacement),即在一个序列中选择若干个元素,已选择过的元素仍可能会出现在后面的选择中,则可以使用random.choices
函数。下面是一个例子:
import random
letters = ['A', 'B', 'C', 'D', 'E']
selected = random.choices(letters, k=5)
print(selected)
输出结果为:
['D', 'C', 'D', 'B', 'B']
需要注意的是,使用random.choices
函数进行可重复抽样时,可以使用参数weights
为每个元素设置一个权重,以决定它们被选择的概率。
以上就是Python中随机选择不替换和可重复抽样的实现方法,希望对大家有所帮助!