python实现 有10个球分别3红、3蓝、4白,现需要将这10个球放入这3个盒子,要求每个盒子至少有一个白球。用函数封装。

1.用b=[[],[],[]]表示三个盒子,即里面的三个小列表。先抽出三个白球,依次放如三个盒子中,把剩下的球加在一起,遍历剩下的球并随机放入盒子中 

2.代码实现

import random


def box1():
    box = []

    for i in range(3):
        box.append([])
    # print(box)
    white_ball = []
    for i in range(4):  #生成一个列表['白球1','白球2','白球3','白球4']
        white_ball.append("白球%d" % (i + 1))
    red_ball = []     #生成红球列表
    for i in range(3):
        red_ball.append('红球%d' % (i + 1))
    blue_ball = []    #生成蓝球列表
    for i in range(3):
        blue_ball.append('蓝球%d' % (i + 1))
    for i in box:  # 先把白球分配给三个盒子
        ball_index = random.randint(0, len(white_ball) - 1) #随机生成一个序号即白球的下标,注意randint()函数左右值都可以取到
        a = white_ball.pop(ball_index)  #将上步取到的白球从白球列表中删除
        i.append(a)
    rest_ball = white_ball + blue_ball + red_ball  # 剩余一个白球与其他球组成一个新列表
    for i in rest_ball:  # 把剩余的球再分配个三个盒子,遍历剩下的球
        box_index = random.randint(0, 2)
        box[box_index].append(i)
    print('分配结束', box)


box1()

3.运行2次结果如下:

《python实现 有10个球分别3红、3蓝、4白,现需要将这10个球放入这3个盒子,要求每个盒子至少有一个白球。用函数封装。》

 《python实现 有10个球分别3红、3蓝、4白,现需要将这10个球放入这3个盒子,要求每个盒子至少有一个白球。用函数封装。》

    原文作者::一口蛋黄酥
    原文地址: https://blog.csdn.net/m0_53344441/article/details/124099423
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞