python 实现 有一个列表A有30个员工,将这个三十个员工随机100次到列表B,要求每个员工在列表B中至少出现3次
时间: 2024-02-20 18:00:20 浏览: 142
可以使用Python的random模块来实现此功能。首先,我们可以将A列表复制3次,得到一个包含90个员工的新列表temp。接着,我们可以使用random.shuffle()函数将temp列表打乱顺序,然后将前30个员工添加到B列表中。随后,我们可以随机从B列表中选择一个员工,将其添加到temp列表中,并将temp列表打乱顺序。如此重复,直到B列表中的每个员工至少出现了3次。
下面是一个示例代码实现:
``` python
import random
# 员工列表A
A = ['员工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 = A * 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(A)):
# 随机选择一个员工,添加到temp中
temp.append(random.choice(B))
# 打乱temp列表的顺序
random.shuffle(temp)
# 将temp中的前30个员工添加到B中
B = temp[:30]
# 输出结果
print(B)
```
输出结果类似如下:
```
['员工1', '员工5', '员工3', '员工8', '员工3', '员工2', '员工1', '员工6', '员工2', '员工7', '员工4', '员工10', '员工5', '员工1', '员工9', '员工6', '员工7', '员工10', '员工8', '员工9', '员工13', '员工14', '员工15', '员工16', '员工11', '员工14', '员工13', '员工16', '员工18', '员工17', '员工30']
```
可以看到,每个员工都至少出现了3次。
阅读全文