鱼C论坛

 找回密码
 立即注册
查看: 946|回复: 6

[已解决]想问下各位大佬怎么删除列表的重复元素

[复制链接]
发表于 2021-12-16 17:40:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要实现的功能是将列表L随机分成任意组数(元素不重复),想问下各位大佬,为什么我后面明明有做到删除重复值这个操作为什么输出还是会有重复值呢?


  1. import random
  2. L1=['李思民','韦依婷','曹韵珮','侯丹玟','莫楚欣','许晓柔','蔡奕珊','李锦欣','黄婉瑶','黄懿祺']
  3. L2=['黎潼欣','陈冬青','陈妮婷','林诗慧','杨沛怡','张芷焱','梁晓琪','黎焯婷','郑茹','黄东瑶']
  4. L3=['张泠','潘欣怡','谢欣','刘美仪','刘洁曼','吴婉婷','欧阳琼凤','黄佳娜','邹奕璠','马彬彬']
  5. L4=['黄晓茵','莫济航','孔繁深','林哲','陈少雄','陈树涛','谢锨佳','梁杰荣','许家铭','周博明']
  6. L5=['罗泽鹏','陈兴','苏智坪','王泽畅','赵骏','姚慧煜','缪泽政','李文祥','杨帅','吕金龙','薛海鹏']
  7. L = L1+L2+L3+L4+L5
  8. A = [] # 空列表
  9. b=1#计数器
  10. R = random.randint(1,51) #产生一个随机数看看每组要有几个人
  11. a = 51//R #计算需要分成几组
  12. print(f'每组{R}人,要随机分成{a}组')
  13. for i in L:
  14.     while b<a:        
  15.         for i in range(a):
  16.             W = random.sample(L,R) #一次从列表L中抽取R人
  17.             if i not in A: #去除重复的元素
  18.                 A.append(W)
  19.                 b=b+1
  20. print(A)
复制代码

#这是输出
  1. 每组15人,要随机分成3组
  2. [['刘美仪', '李思民', '陈树涛', '薛海鹏', '黄佳娜', '苏智坪', '莫楚欣', '姚慧煜', '吕金龙', '许晓柔', '王泽畅', '谢欣', '曹韵珮', '缪泽政', '李锦欣'], ['薛海鹏', '黄佳娜', '张芷焱', '梁杰荣', '李文祥', '周博明', '黄懿祺', '郑茹', '林诗慧', '吕金龙', '马彬彬', '潘欣怡', '许晓柔', '赵骏', '黎潼欣'], ['王泽畅', '刘美仪', '陈少雄', '周博明', '林哲', '杨沛怡', '谢欣', '侯丹玟', '欧阳琼凤', '苏智坪', '吴婉婷', '陈兴', '许晓柔', '陈冬青', '李文祥']]
复制代码

最佳答案
2021-12-16 19:49:31
  1. import random
  2. L1=['李思民','韦依婷','曹韵珮','侯丹玟','莫楚欣','许晓柔','蔡奕珊','李锦欣','黄婉瑶','黄懿祺']
  3. L2=['黎潼欣','陈冬青','陈妮婷','林诗慧','杨沛怡','张芷焱','梁晓琪','黎焯婷','郑茹','黄东瑶']
  4. L3=['张泠','潘欣怡','谢欣','刘美仪','刘洁曼','吴婉婷','欧阳琼凤','黄佳娜','邹奕璠','马彬彬']
  5. L4=['黄晓茵','莫济航','孔繁深','林哲','陈少雄','陈树涛','谢锨佳','梁杰荣','许家铭','周博明']
  6. L5=['罗泽鹏','陈兴','苏智坪','王泽畅','赵骏','姚慧煜','缪泽政','李文祥','杨帅','吕金龙','薛海鹏']
  7. L = L1+L2+L3+L4+L5
  8. R = 5 #random.randint(1,51) #产生一个随机数看看每组要有几个人
  9. A = []
  10. a = 51//R #计算需要分成几组
  11. print(f'每组{R}人,要随机分成{a}组')
  12. random.shuffle(L)

  13. for i in range(a):
  14.     A.append(L[i * R: i * R + R])
  15. print(A)
复制代码

这里考虑不够分组的舍去,如果把剩下的单做一组可以调整一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-16 18:17:58 From FishC Mobile | 显示全部楼层
set
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-16 18:35:20 | 显示全部楼层
set
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-16 19:10:53 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-12-16 19:12 编辑

  1. import random

  2. L1 = ['李思民', '韦依婷', '曹韵珮', '侯丹玟', '莫楚欣', '许晓柔', '蔡奕珊', '李锦欣', '黄婉瑶', '黄懿祺']
  3. L2 = ['黎潼欣', '陈冬青', '陈妮婷', '林诗慧', '杨沛怡', '张芷焱', '梁晓琪', '黎焯婷', '郑茹', '黄东瑶']
  4. L3 = ['张泠', '潘欣怡', '谢欣', '刘美仪', '刘洁曼', '吴婉婷', '欧阳琼凤', '黄佳娜', '邹奕璠', '马彬彬']
  5. L4 = ['黄晓茵', '莫济航', '孔繁深', '林哲', '陈少雄', '陈树涛', '谢锨佳', '梁杰荣', '许家铭', '周博明']
  6. L5 = ['罗泽鹏', '陈兴', '苏智坪', '王泽畅', '赵骏', '姚慧煜', '缪泽政', '李文祥', '杨帅', '吕金龙', '薛海鹏']

  7. L = L1+L2+L3+L4+L5

  8. a = random.sample(L, 15)
  9. b = random.sample([i for i in L if i not in a], 15)
  10. c = random.sample([i for i in L if i not in a and i not in b], 15)

  11. print(*a)
  12. print(*b)
  13. print(*c)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-16 19:16:04 | 显示全部楼层

楼主表达的问题是 50 人分三组,每组 15 人(意思就是还有 5 人落单),用 set反而复杂化代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-16 19:16:57 | 显示全部楼层

楼主表达的问题是 50 人分三组,每组 15 人(意思就是还有 5 人落单),用 set反而复杂化代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-16 19:49:31 | 显示全部楼层    本楼为最佳答案   
  1. import random
  2. L1=['李思民','韦依婷','曹韵珮','侯丹玟','莫楚欣','许晓柔','蔡奕珊','李锦欣','黄婉瑶','黄懿祺']
  3. L2=['黎潼欣','陈冬青','陈妮婷','林诗慧','杨沛怡','张芷焱','梁晓琪','黎焯婷','郑茹','黄东瑶']
  4. L3=['张泠','潘欣怡','谢欣','刘美仪','刘洁曼','吴婉婷','欧阳琼凤','黄佳娜','邹奕璠','马彬彬']
  5. L4=['黄晓茵','莫济航','孔繁深','林哲','陈少雄','陈树涛','谢锨佳','梁杰荣','许家铭','周博明']
  6. L5=['罗泽鹏','陈兴','苏智坪','王泽畅','赵骏','姚慧煜','缪泽政','李文祥','杨帅','吕金龙','薛海鹏']
  7. L = L1+L2+L3+L4+L5
  8. R = 5 #random.randint(1,51) #产生一个随机数看看每组要有几个人
  9. A = []
  10. a = 51//R #计算需要分成几组
  11. print(f'每组{R}人,要随机分成{a}组')
  12. random.shuffle(L)

  13. for i in range(a):
  14.     A.append(L[i * R: i * R + R])
  15. print(A)
复制代码

这里考虑不够分组的舍去,如果把剩下的单做一组可以调整一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表