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

如何用Python从现有词表生成多组指定长度的无重复随机词列表

原有代码问题排查

  • 使用random.choice()抽取元素时支持重复抽取,无法满足同组内词语不重复的要求
  • 循环逻辑存在错误:count初始值为0,每次循环自增1,if count == 0: break的条件永远不会触发,最终生成的列表长度等于原词表长度,不符合单次抽取10个词的需求

实现方案

Python内置的random.sample()方法可以直接实现从序列中无重复的随机抽样,完全匹配你的需求,修改后代码如下:

import random

def counterbalance(wordlist, sample_per_group=10, total_group=6):
    group_list = []
    for _ in range(total_group):
        # 从词表中无重复抽取指定数量的词,生成单组词表
        single_group = random.sample(wordlist, k=sample_per_group)
        group_list.append(single_group)
    return group_list

wordlist = ["Bati", "Uteli", "Foki", "Ipe", "Asemo", "Ragi", "Bilu", "Oga", "Egi", "Tidu", "Pewo", "Elebo", "Dalo", 
            "Bofe","Tari", "Zega", "Atesi", "Teku", "Doza", "Bani"]

# 获取生成的6组词表
result_groups = counterbalance(wordlist)
# 遍历打印结果
for group_id, words in enumerate(result_groups, 1):
    print(f"第{group_id}组:{words}")

代码说明

  • random.sample(序列, k=抽取数量) 天然保证返回的k个元素互不重复,不需要额外做去重判断
  • 函数预留了参数入口,后续如果要调整每组抽取的词数、生成的组数,直接传入对应参数即可,不需要修改函数内部逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:09:01