Python 中的 random.sample() 方法用于从序列生成随机样本,无需替换。它允许您生成从给定序列中随机选择的唯一元素列表,例如列表、元组、字符串或范围。当您需要确保每个选定的元素都是唯一的,并且在样本中不重复时,此方法特别有用。这对于需要随机抽样的任务特别有用,例如统计分析、模拟和随机选择过程以及其他应用程序。
请务必注意,如果给定的样本大小超过序列大小/长度,此方法将引发 ValueError。
语法
以下是 sample() 方法的语法 -
random.sample(seq, k, *, counts=None)
参数
Python random.sample() 方法接受以下参数 -
- seq:序列数据类型可以是任何可迭代对象,例如列表、元组、字符串或范围。
- k:输出列表的长度,其元素从 SEQ 中选择。
- counts:一个可选的仅关键字参数,允许指定群体中每个元素的频率。
返回值
这个 random.sample() 方法返回一个列表,其中包含从给定序列中随机选择的 k 个唯一元素。
让我们考虑使用任何顺序数据类型(例如列表、字符串、元组或 set)的示例,以从序列中随机选择唯一元素。
示例 1
让我们看一个列表数据类型的 random.sample() 方法示例,并将输出列表大小提到为 3。
from random import sample
list=[10,20,30,40,50]
sample_list=sample(list,3)
print(sample_list)
以下是输出 -
[30, 20, 10]
注意:每次执行生成的 Output 都会有所不同,因为它会返回一个随机项目。
示例 2
让我们看一个字符串数据类型的 random.sample() 方法示例。
from random import sample
str="qikepu"
sample_str=sample(str,3)
print(sample_str)
在执行上述代码时,您将获得如下所示的类似输出 -
['i', 'n', 't']
示例 3
现在,让我们看看元组数据类型的 random.sample() 方法示例。
from random import sample
tuple=("qikepu", "Ankit","Tutorix","courses","online")
sample_tuple=sample(tuple,3)
print(sample_tuple)
上述代码的输出如下 -
['qikepu', 'courses', 'Tutorix']
示例 4
下面是一个将 random.sample() 方法与 set 数据类型一起使用的示例。
from random import sample
set=("a","b","c","d","e")
sample_set=sample(set,3)
print(sample_set)
当我们运行上述程序时,它会产生如下所示的类似结果 -
['e', 'a', 'd']
示例 5
此示例演示了使用 Python 的 try 和 except 块和 random.sample() 方法进行错误处理。
import random
# List of elements
my_list = [1, 2, 3, 1, 3, 2]
# Try to generate a sample of 10 elements from the list
try:
sampled_list = random.sample(my_list, 10)
except ValueError as e:
print("Error:", e)
以下是输出 -
Error: Sample larger than population or is negative