【问题标题】:Trouble With Creating Random Job Assigner创建随机作业分配器的麻烦
【发布时间】:2019-11-22 17:47:56
【问题描述】:

我正在尝试使用 Python 创建一个随机作业分配器。我想为随机工作分配一个随机名称列表。我也不希望任何人从事与其他人相同的工作。我在这个脚本上取得了一些进展,但我遇到了一个问题,工作和人员列表中的一项被切断了。下面是我的代码和输出。感谢所有帮助和建议!

import random
jobs = ['scrub', 'wash', 'collect']
people = ['Tim', 'Ryan', 'Jon']
job_assignments = {}

def jobs_Create():
    for person in ppl:
        for job in jobs:
            selected_job = random.choice(jobs)
            job_assignments[person] = selected_job
            jobs.remove(selected_job)
    return job_assignments

这是我运行函数时的输出: {'Tim':'磨砂','Ryan':'收集'}

【问题讨论】:

  • 删除该行 for job in jobs: 并将其下方的行取消缩进。还有 ppl->people.

标签: python loops dictionary variable-assignment


【解决方案1】:

您可以使用random.sample() (doc) 代替random.choice()

import random

jobs = ['scrub', 'wash', 'collect']
people = ['Tim', 'Ryan', 'Jon']

job_assignments = dict(zip(people, random.sample(jobs, len(jobs))))

from pprint import pprint
pprint(job_assignments, width=30)

打印(例如):

{'Jon': 'wash',
 'Ryan': 'collect',
 'Tim': 'scrub'}

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 2015-05-10
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多