kev*_*lre 27 python random python-3.x
我有这个清单:
colors = ["R", "G", "B", "Y"]
Run Code Online (Sandbox Code Playgroud)
我希望从中获得4个随机字母,但包括重复.
运行这个只会给我4个独特的字母,但绝不会有任何重复的字母:
print(random.sample(colors,4))
Run Code Online (Sandbox Code Playgroud)
如何获得4种颜色的列表,可能重复的字母?
Ray*_*ger 31
在Python 3.6中,新的random.choices()函数将直接解决问题:
>>> from random import choices
>>> colors = ["R", "G", "B", "Y"]
>>> choices(colors, k=4)
['G', 'R', 'G', 'Y']
Run Code Online (Sandbox Code Playgroud)
tri*_*cot 19
print([random.choice(colors) for _ in colors])
Run Code Online (Sandbox Code Playgroud)
如果您需要的值的数量与列表中的值的数量不对应,则使用range
:
print([random.choice(colors) for _ in range(7)])
Run Code Online (Sandbox Code Playgroud)
从Python 3.6开始,您还可以使用random.choices
(复数)并指定您需要的值的数量作为k参数.
Pri*_*ank 14
尝试numpy.random.choice
(文档numpy-v1.13):
import numpy as np
n = 10 #size of the sample you want
print(np.random.choice(colors,n))
Run Code Online (Sandbox Code Playgroud)