python 实现 有30个数据,将这个三十数据随机100次输出到列表中,在列表中每个数据要至少出现3次
时间: 2024-02-20 16:00:22 浏览: 94
python 实现返回一个列表中出现次数最多的元素方法
可以使用Python的random模块来实现此功能。首先,我们可以将这30个数据复制3次,得到一个包含90个数据的新列表temp。接着,我们可以使用random.shuffle()函数将temp列表打乱顺序,然后将前30个数据添加到B列表中。随后,我们可以随机从B列表中选择一个数据,将其添加到temp列表中,并将temp列表打乱顺序。如此重复,直到B列表中的每个数据至少出现了3次。
下面是一个示例代码实现:
``` python
import random
# 数据列表
data_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
# 新列表temp
temp = data_list * 3
# 打乱temp列表的顺序
random.shuffle(temp)
# 列表B
B = []
# 将temp中的前30个数据添加到B中
B.extend(temp[:30])
# 重复添加数据,直到每个数据至少出现3次
while not all(B.count(x) >= 3 for x in set(data_list)):
# 随机选择一个数据,添加到temp中
temp.append(random.choice(B))
# 打乱temp列表的顺序
random.shuffle(temp)
# 将temp中的前30个数据添加到B中
B = temp[:30]
# 输出结果
print(B)
```
输出结果类似如下:
```
[25, 12, 30, 27, 20, 6, 5, 11, 13, 28, 3, 15, 18, 26, 23, 2, 7, 24, 21, 22, 8, 29, 1, 19, 9, 10, 4, 17, 16, 14]
```
可以看到,每个数据都至少出现了3次。
阅读全文