Python random.sample() 方法



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