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

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]

你可能感兴趣的:(Python,库/函数使用,python,开发语言)