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

如何在Python中基于指定种子生成含重复值的数字列表?

解决Python指定种子生成含重复值数字列表的问题

嘿,这个问题我之前也踩过坑!你用random.sample()出错的原因很简单:sample是无放回抽样——意思是它不会重复抽取同一个元素,所以当你要生成的样本数量(100000)远大于总体元素数量(range(100)只有100个唯一值)时,Python肯定会抛出ValueError,因为根本没法在不重复的前提下抽10万个元素。

想要生成允许重复、且基于指定种子的随机数字列表,直接用random.choices()就可以了,它是有放回抽样,完美匹配你的需求。

示例代码

import random

# 先设置种子,确保每次运行生成的结果完全一致
random.seed(3340)
# 从0-99中随机抽取100000个元素(允许重复)
test = random.choices(range(100), k=100000)

额外说明

  • choices的k参数就是你要生成的列表长度,这里设为100000完全没问题;
  • 如果需要让某些数字出现的概率更高,可以添加weights参数,比如:
    # 让数字0出现的概率是其他数字的2倍
    test = random.choices(range(100), weights=[2] + [1]*99, k=100000)
    
  • 种子一定要在生成随机数之前设置,这样才能保证结果的可复现性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:33:56