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异常。
