欢迎访问宙启技术站
智能推送

sample函数从列表中随机选择N个元素?

发布时间:2023-06-09 22:28:52

sample函数是Python内置的random模块中的一个函数。这个函数可以从列表、元组、集合等可迭代的对象中随机选择指定数量的元素。其中可迭代的对象可以是任何序列类型的对象,包括列表、元组、集合、字符串等。

函数的形式如下:

random.sample(sequence, k)

其中:

- sequence:要从中选择元素的序列类型的对象,可以是列表、元组、集合等。

- k:要选择的元素数量,必须小于序列的长度。

函数的返回值是一个列表,包含随机选择的元素。

下面来看一个例子:

import random

lst = [1, 2, 3, 4, 5]
sample_lst = random.sample(lst, 3)

print(sample_lst)

这个例子中,我们定义了一个包含5个元素的列表lst。然后使用sample函数从lst中随机选择3个元素,并将结果保存在一个新的列表sample_lst中。最后,打印出sample_lst的内容,得到如下结果:

[4, 1, 5]

可以看到,sample函数从lst中随机选择了3个元素,并将它们作为一个包含3个元素的列表返回。

需要注意的是,如果要从一个序列中选择所有的元素,可以使用shuffle函数将序列中的元素随机打乱,然后使用切片语法取前k个元素。如下所示:

import random

lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
sample_lst = lst[:3]

print(sample_lst)

这个例子中,我们首先使用shuffle函数将lst中的元素随机打乱。然后使用切片语法取lst中的前3个元素,将它们保存在sample_lst中并打印出来。运行结果与上面的例子一样。

需要注意的是,shuffle函数会直接修改原序列,因此建议先对原序列进行拷贝,然后再对拷贝的序列进行操作,如下所示:

import random

lst = [1, 2, 3, 4, 5]
lst_copy = lst.copy()

random.shuffle(lst_copy)
sample_lst = lst_copy[:3]

print(sample_lst)

总的来说,sample函数和shuffle函数可以帮助我们从一个序列中随机选择指定数量的元素,非常方便实用。需要注意的是,选择元素的数量必须小于序列的长度,否则会引发ValueError异常。