如何使用 Python 将一个字典中的值随机分配给另一个字典

时间:2021-01-30 14:15:21

标签: python

我正在尝试创建一个执行以下操作的程序:

将有 3 种不同的课程可供查看(“入门”、“主要”、“沙漠”),每个团队都将被分配查看其中的一种。下面实际上给每个团队分配了一道菜来做饭,但不是随机的。 数据列表将在60 - 70 个团队左右,我会在抽签前检查,以便所有团队都被分配做饭并被邀请作为其他 2 个课程的嘉宾。 所以最后每个团队应该看点什么,邀请另外两个团队,然后他们应该被邀请作为其他课程的嘉宾。

我已经更新了代码,是的,它好多了。 如果我现在想从之前没有参加过课程并且以前没有见过其他团队的参与者中随机邀请两个团队。你对我应该如何尝试构建这个逻辑有什么建议吗?

import pandas as pd
import random
import numpy as np

data = pd.read_excel('C:\Peter\Programming\Projects\Cycling\participants.xlsx')
teams = data.to_dict(orient = 'index')
participants=list(teams)

starter = []
main = []
desert = []

starter = ['Starter'] * (len(participants)//3)
main = ['Main']*(len(participants)//3)
desert = ['Desert']*(len(participants)//3)

total_meals = starter + main + desert
random.shuffle(total_meals)
draw_meal = dict(zip(participants,total_meals))

1 个答案:

答案 0 :(得分:0)

首先对您的代码进行一些改进:

starter = []
def add_starter():
    for team in range(len(participants)//3):
        x = 'Starter'
        starter.append(x)

可以写成:

starter = ['Starter']*len(participants)//3

当我正确理解您的问题时,改组 total_meals 列表即可:

random.shuffle(total_meals)

还有另一种使用 zip 从 2 个列表创建字典的好方法:

draw_meal = dict(zip(participants,total_meals))
相关问题