选择随机值,但每个值的选择次数精确

2024-04-19 20:09:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还不熟悉。 我列出了四个值。
我需要从这个列表中选择32次随机值。
然而,我需要每一个值被精确选择8次。你知道吗

到目前为止我用的是:

import random
my_list=['a','b','c','d']
for i in range(1,33):
    selection=random.choice(my_list)
    print("{} selection: {}".format(i,selection))

这是有效的-但是我如何让它给我每个值正好8倍呢?你知道吗

谢谢你的帮助。你知道吗


Tags: inimportformat列表formyrangerandom
3条回答

你可以先把你的单子乘以8倍

>>> result = my_list*8

然后^{}那个列表和^{}它。你知道吗

>>> random.shuffle(result)
>>> print(''.join(result))
aaabdddbcdbcbabadcccddabbacbaccd

为了确保为列表中的每个元素选择8次每个值,您需要为每个元素设置一个计数器。您需要跟踪每个元素被选中的次数。你知道吗

每一次选择是字母随机选择增量其唯一计数器1。再次运行随机选择时,需要检查该值是否已选择8次。如果有,抛出该选择并再次运行随机选择。然后你需要检查一下它随机返回的结果是否已经被选中了8次。你知道吗

我会建立一个包含所需元素的列表,然后洗牌。你知道吗

import random
my_list = ['a', 'b', 'c', 'd'] * 8
random.shuffle(my_list)

现在我的\列表包含32个随机排列的元素,每个元素出现8次。你知道吗

相关问题 更多 >