我只看了group size_generator函数(我假设group number_generator使用类似的逻辑),而您的bug实际上来自逻辑本身。
1。创建组
gpct = int(headcount) // int(gpsz) # number of people per group
for x in range(int(gpct)):
final_dict2['group{0}'.format(str(x+1))] = x + 1
从这个街区,你有固定数量的小组,不管是30人还是33人。
2。基于组的循环
for k, v in final_dict2.items():
workinglist = []
for y in range(int(gpsz)):
workinglist.append(shuf_lst[0])
del shuf_lst[0]
此外,您还可以循环查看组(而不是总人数)。因此,一旦所有的组都填满了,它就退出了,剩下的就是
shuf_lst
如果除法运算中还有余数。
这段代码对于初学者来说真的很不错(干得好!)。如果你循环访问人数,而不是组的数量,你应该没事。实际上,你也不必在下手之前初始化dict组。听写可以通过简单的赋值进行扩展:
final_dict2['6'] = workinglist
因此,当你
舒夫尔斯特
不是空的,请为
final_dict2
并将工作列表分配给它。