Python random.simple() 打乱列表顺序/ 随机获取列表中指定数量的元素

random.sample() 是Python中用于不放回随机抽样的函数,它接受一个序列和抽取的元素个数,返回一个新列表。这个函数适用于从列表、元组等序列中随机选取指定数量的唯一元素。例如,从0到9的列表中抽取5个不同数字,或者打乱列表顺序。新增的counts参数允许指定每个元素的重复次数。如果样本大小大于总体大小,将抛出ValueError。此函数在大数据采样和随机试验中非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

random.sample() 用法

用法描述:

简单来说就是传入列表及随机取样的个数,返回一个新列表。

random.sample(population, k, *, counts=None)
Return a k length list of unique elements chosen from the population sequence.
Used for random sampling without replacement.

返回包含来自总体的元素的新列表,同时保持原始总体不变。 结果列表按选择顺序排列,因此所有子切片也将是有效的随机样本。 这允许抽奖获奖者(样本)被划分为大奖和第二名获胜者(子切片)。

总体成员不必是 hashable 或 unique 。 如果总体包含重复,则每次出现都是样本中可能的选择。

重复的元素可以一个个地直接列出,或使用可选的仅限关键字形参 counts 来指定。 例如,sample(['red', 'blue'], counts=[4, 2], k=5) 等价于 sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)。

要从一系列整数中选择样本,请使用 range() 对象作为参数。 对于从大量人群中采样,这种方法特别快速且节省空间:sample(range(10000000), k=60) 。

如果样本大小大于总体大小,则引发 ValueError 。

在 3.9 版更改: 增加了 counts 形参。

在 3.11 版更改: The population must be a sequence. Automatic conversion of sets to lists is no longer supported.
用法实例
1 随机获取列表中指定数量的元素
list_1 = list(range(10))
list_2 = random.sample(list_1,5)
print(list_2)
输出结果

[4, 6, 9, 3, 8]
2 打乱列表顺序

只要把输出的K变为列表的长度即可

list_1 = list(range(10))
list_2 = random.sample(list_1,10)
print(list_1)
print(list_2)
----------------------
输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 6, 8, 2, 9, 0, 3, 5, 7, 1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值