现在我有:
fname lname group#
john smith
Mark Tibbet
Martin spacey
Cornel willis
Jack Sparrow
我的目标是让他们像这样分组:
fname lname group#
john smith 1
Mark Tibbet 1
Martin spacey 2
Cornel willis 2
Jack Sparrow 3
所以基本上我想要输入一个数字(比如说2),它给出了我们上面显示的两组数字。有5个人,我想要两个人的团体,即使没有足够的人,它仍然将它们分组,直到添加第6个人并再次运行该动作。任何想法如何做到这一点?
答案 0 :(得分:0)
以免定义一个chuncker函数
def chunker(seq, size):
return (seq[pos:pos + size] for pos in xrange(0, len(seq), size))
def assing_group_number(group,number):
for member in group:
member.group = number
member.save()
users = User.objects.all()
chunk_size = 2
group_number = 1
final_groups = []
for group_users in chunker(users, chunk_size):
#here we are iterating over the users in groups of length = chunk size
#and then assigning them a group_number
assing_group_number(group_users,group_number)
group_number += 1