python中的random.sample()方法有什么作用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的random.sample()方法有什么作用?相关的知识,希望对你有一定的参考价值。

我用Google搜索了很多但却找不到它。我想知道使用random.sample()方法,它给出了什么?什么时候应该使用它和一些示例用法。

答案

documentation说:

random.sample(population,k)

返回从总体序列中选择的k长度的唯一元素列表。用于无需更换的随机抽样。

基本上,它从序列中选取k个唯一的随机元素,一个样本:

>>> import random
>>> c = list(range(0, 15))
>>> c
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> random.sample(c, 5)
[9, 2, 3, 14, 11]

random.sample也直接从一个范围工作:

>>> c = range(0, 15)
>>> c
range(0, 15)
>>> random.sample(c, 5)
[12, 3, 6, 14, 10]

除了序列,random.sample也适用于集合:

>>> c = {1, 2, 4}
>>> random.sample(c, 2)
[4, 1]

但是,random.sample不适用于任意迭代器:

>>> c = [1, 3]
>>> random.sample(iter(c), 5)
TypeError: Population must be a sequence or set.  For dicts, use list(d).
另一答案

random.sample()也在文本上工作

例:

> text = open("textfile.txt").read() 

> random.sample(text, 5)

> ['f', 's', 'y', 'v', '
']

n也被视为一个字符,因此也可以返回

如果您首先使用split方法,则可以使用random.sample()从文本文件中返回随机单词

例:

> words = text.split()

> random.sample(words, 5)

> ['the', 'and', 'a', 'her', 'of']

以上是关于python中的random.sample()方法有什么作用?的主要内容,如果未能解决你的问题,请参考以下文章

python: random.sample

python中怎么从一个列表中可重复的随机抽取元素构成新列表?

python语法积累(持续更新)

python中choice对比(在numpy和random中均出现过)外加sample()函数对比

python中的random模块小结

python random 从集合中随机选择元素