获取随机样本

时间:2017-04-07 15:27:52

标签: python python-3.x random

我有这个清单:

colors = ["R", "G", "B", "Y"]

我希望从中获得4个随机字母,但包括重复。

运行它只会给我4个独特的字母,但绝不会重复字母:

print(random.sample(colors,4))

如何获得4种颜色的列表,可能重复字母?

4 个答案:

答案 0 :(得分:26)

在Python 3.6中,新的random.choices()函数将直接解决问题:

>>> from random import choices
>>> colors = ["R", "G", "B", "Y"]
>>> choices(colors, k=4)
['G', 'R', 'G', 'Y']

答案 1 :(得分:16)

使用random.choice

print([random.choice(colors) for _ in colors])

如果您需要的值数量与列表中的值数量不对应,请使用range

print([random.choice(colors) for _ in range(7)])

从Python 3.6开始,你也可以使用random.choices(复数)并指定你需要的值作为 k 参数。

答案 2 :(得分:12)

尝试numpy.random.choicehttp://json.org):

import numpy as np
n = 10 #size of the sample you want
print(np.random.choice(colors,n))

答案 3 :(得分:0)

此代码将生成您需要的结果。我在每行添加了注释,以帮助您和其他用户遵循该流程。请随时提出任何问题。

import random

colours = ["R", "G", "B", "Y"]  # The list of colours to choose from
output_Colours = []             # A empty list to append results to
Number_Of_Letters = 4           # Allows the code to easily be updated

for i in range(Number_Of_Letters):  # A loop to repeat the generation of colour
    output_Colours.append(random.sample(colours,1)) # append and generate a colour from the list

print (output_Colours)