📜  python 随机选择不替换 - Python (1)

📅  最后修改于: 2023-12-03 14:46:19.249000             🧑  作者: Mango

Python随机选择不替换

在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中随机选择不替换和可重复抽样的实现方法,希望对大家有所帮助!