是否有更好的方法从列表中随机选择:

Gli*_*chd 4 python python-3.x

choices = [a,a,a,a,b,b,c]
random.choice(choices)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,最有可能被选中,但有更好/更短的方式吗?

che*_*ner 5

如果您使用choices,则不能choice,您可以为每个元素指定权重.

random.choices([a,b,c], [4,2,1])
Run Code Online (Sandbox Code Playgroud)

第二个参数是第一个参数中每个元素的相对权重.例如,在下文中,您可以看到a选择的频率大约是频率的两倍,大约是频率的b四倍c.

>>> import collections, random
>>> collections.Counter(random.choices('abc', [4,2,1], k=100))
Counter({'a': 58, 'b': 25, 'c': 17})
Run Code Online (Sandbox Code Playgroud)