我有这个清单:
colors = ["R", "G", "B", "Y"]
我希望从中获得4个随机字母,但包括重复。
运行它只会给我4个独特的字母,但绝不会重复字母:
print(random.sample(colors,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)
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.choice
(http://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)