马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
要实现的功能是将列表L随机分成任意组数(元素不重复),想问下各位大佬,为什么我后面明明有做到删除重复值这个操作为什么输出还是会有重复值呢?
- import random
- L1=['李思民','韦依婷','曹韵珮','侯丹玟','莫楚欣','许晓柔','蔡奕珊','李锦欣','黄婉瑶','黄懿祺']
- L2=['黎潼欣','陈冬青','陈妮婷','林诗慧','杨沛怡','张芷焱','梁晓琪','黎焯婷','郑茹','黄东瑶']
- L3=['张泠','潘欣怡','谢欣','刘美仪','刘洁曼','吴婉婷','欧阳琼凤','黄佳娜','邹奕璠','马彬彬']
- L4=['黄晓茵','莫济航','孔繁深','林哲','陈少雄','陈树涛','谢锨佳','梁杰荣','许家铭','周博明']
- L5=['罗泽鹏','陈兴','苏智坪','王泽畅','赵骏','姚慧煜','缪泽政','李文祥','杨帅','吕金龙','薛海鹏']
- L = L1+L2+L3+L4+L5
- A = [] # 空列表
- b=1#计数器
- R = random.randint(1,51) #产生一个随机数看看每组要有几个人
- a = 51//R #计算需要分成几组
- print(f'每组{R}人,要随机分成{a}组')
- for i in L:
- while b<a:
- for i in range(a):
- W = random.sample(L,R) #一次从列表L中抽取R人
- if i not in A: #去除重复的元素
- A.append(W)
- b=b+1
- print(A)
复制代码
#这是输出
- 每组15人,要随机分成3组
- [['刘美仪', '李思民', '陈树涛', '薛海鹏', '黄佳娜', '苏智坪', '莫楚欣', '姚慧煜', '吕金龙', '许晓柔', '王泽畅', '谢欣', '曹韵珮', '缪泽政', '李锦欣'], ['薛海鹏', '黄佳娜', '张芷焱', '梁杰荣', '李文祥', '周博明', '黄懿祺', '郑茹', '林诗慧', '吕金龙', '马彬彬', '潘欣怡', '许晓柔', '赵骏', '黎潼欣'], ['王泽畅', '刘美仪', '陈少雄', '周博明', '林哲', '杨沛怡', '谢欣', '侯丹玟', '欧阳琼凤', '苏智坪', '吴婉婷', '陈兴', '许晓柔', '陈冬青', '李文祥']]
复制代码
- import random
- L1=['李思民','韦依婷','曹韵珮','侯丹玟','莫楚欣','许晓柔','蔡奕珊','李锦欣','黄婉瑶','黄懿祺']
- L2=['黎潼欣','陈冬青','陈妮婷','林诗慧','杨沛怡','张芷焱','梁晓琪','黎焯婷','郑茹','黄东瑶']
- L3=['张泠','潘欣怡','谢欣','刘美仪','刘洁曼','吴婉婷','欧阳琼凤','黄佳娜','邹奕璠','马彬彬']
- L4=['黄晓茵','莫济航','孔繁深','林哲','陈少雄','陈树涛','谢锨佳','梁杰荣','许家铭','周博明']
- L5=['罗泽鹏','陈兴','苏智坪','王泽畅','赵骏','姚慧煜','缪泽政','李文祥','杨帅','吕金龙','薛海鹏']
- L = L1+L2+L3+L4+L5
- R = 5 #random.randint(1,51) #产生一个随机数看看每组要有几个人
- A = []
- a = 51//R #计算需要分成几组
- print(f'每组{R}人,要随机分成{a}组')
- random.shuffle(L)
- for i in range(a):
- A.append(L[i * R: i * R + R])
- print(A)
复制代码
这里考虑不够分组的舍去,如果把剩下的单做一组可以调整一下。
|