gpt4 book ai didi

python - (Python) 是否有更简单的方法将列表中的元素分配给另一个列表中的元素?

转载 作者:行者123 更新时间:2023-12-02 11:19:47 24 4
gpt4 key购买 nike

假设我在一个列表中有 n 个 worker ,每个 worker 都有不同的任意技能水平,例如:

workers = [10, 50, 20, 30, 100, 150]
我需要将这些 worker 分配给两种不同类型的工作之一。一种类型的工作要求 worker 低于或等于某个技能水平(技能水平作为该列表的一个元素给出),例如:
job_one = [20, 5, 100, 25]
而另一份工作要求 worker 高于或等于一定的技能水平:例如:
job_two = [30, 20, 25, 60]
我需要编写一个程序来最大化分配给工作的 worker 数量,并找到该值。我尝试通过对所有列表进行排序 (.sort()) 然后使用 for 循环为每个列表将每个作业分配给一个 worker 来编写它。然后,作业被删除 (.remove())。
然而,这种方法在处理更大的集合时变得非常低效,因为我只需要占用的最大数量的工作,我相信可能有一个更简单的方法。是这种情况吗?非常感谢帮助。
预期输出:
jobs_assigned = 6

最佳答案

请尝试以下代码

jobs_assigned=len(job_one)+len(job_two)-len([i for i in job_one if i<min(workers)])+len([i for i in job_two if i>max(workers)])
这假设从所提供的预期输出推断出,可以为一名 worker 分配多个工作。

关于python - (Python) 是否有更简单的方法将列表中的元素分配给另一个列表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63467382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com