Skip to main content
 首页 » 编程设计

python之生成具有均匀元素频率的随机混洗列表

2025年05月04日10artech

我想在 Django/Python 中编写一个测试单元,我需要创建一个表,其中一列填充从 (1,2,3,4) 中选择的整数,这样每个整数都相同,但列的顺序是随机的。

我正在尝试生成一个随机列表以创建此表。该列表应包含 64 个元素,并且应具有:

  • 16 个元素为 1
  • 16 个元素为 2
  • 16 个元素为 3
  • 16 个元素为 4

我试过使用 random.randint但是生成的列表没有平均分布的元素。

我读过 random.uniform但它似乎只是返回一个 float 。

from random import uniform 
for i in (range(1,65)): 
    r = uniform(1,4) 

输出:

>>> r 
1.184941440487669 

请您参考如下方法:

您可以执行以下操作:

import random 
a = [1,2,3,4]*16 
random.shuffle(a) 

random.shuffle将列表 a 随机洗牌到位。 a 的值将是具有给定元素频率且随机排序的列表。