You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排除列表中已选元素,实现全列表的随机分组处理?

实现列表元素无重复随机分组(每组最多3个元素)

你当前用random.choices()的代码是有放回抽样,会出现重复选中的情况。要实现无重复、全遍历的随机分组(每组最多3个元素,14个元素最后一组剩2个),可以采用先打乱列表再切片拆分的思路,既保证随机性,又不会重复选取元素。

完整代码

import random

myList = ['TGJG78', 'Y7ITHL', 'VHZK0C', '288C13', 'W1JKEK', 
          'JQ55C9', 'M1BN3S', 'G5B3YF', 'MW1RJ9', 'CS9PZ6', 
          '9LJ3IY', 'XLAMG0', 'BGWN3L', 'SL2BSX']  # 共14个元素

# 随机打乱列表顺序,确保分组的随机性
random.shuffle(myList)

# 按每组3个拆分列表,自动处理最后一组的剩余元素
groups = []
for i in range(0, len(myList), 3):
    current_group = myList[i:i+3]
    groups.append(current_group)
    print(f"当前选中组: {current_group}")

# 输出最终所有分组结果
print("\n全部分组:")
for group_num, group in enumerate(groups, start=1):
    print(f"第{group_num}组: {group}")

代码说明

  • random.shuffle(myList):直接修改原列表,将元素顺序随机打乱,这是实现无重复随机分组的核心前提
  • range(0, len(myList), 3):从索引0开始,每次步长为3遍历列表,确保每次取连续的3个元素;最后一次如果不足3个,会自动取剩余的所有元素
  • 最终得到的groups列表就是所有无重复的随机分组,每组最多包含3个元素

内容的提问来源于stack exchange,提问作者Drew Duazeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:42:34