擅长:python、mysql、java
<p>一种变体,它将指定的人作为一个带有任务列表的<code>dict</code>中的键。。。请注意,这可能会分配不均衡的任务。。。因此,您可以对人员列表进行优先级排序,以便将任务分配给第一个列出的人。例:如果你有3个任务,2个人,那么1个人会得到2,2个人会得到1。在</p>
<pre><code>from collections import defaultdict
from random import shuffle
from itertools import cycle, izip
tasks = range(16)
people = ['Bob', 'Jim', 'Sam', 'Mel']
shuffle(tasks)
assigned = defaultdict(list)
for task, person in izip(tasks, cycle(people)):
assigned[person].append(task)
# defaultdict(<type 'list'>, {'Mel': [10, 2, 8, 4], 'Bob': [0, 11, 15, 13], 'Jim': [1, 7, 5, 14], 'Sam': [12, 9, 6, 3]})
</code></pre>