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

如何用Python生成n个带随机种子可复现的列表随机洗牌结果

实现方案

直接使用Python标准库random模块即可实现,核心是用独立的随机数生成器实例保证结果可复现,同时不污染全局随机状态:

import random
from typing import List, Any

def f(lst: List[Any], samples: int = 2, seed: int = 1234) -> List[List[Any]]:
    # 初始化独立的随机数生成器,不影响全局random状态
    rng = random.Random(seed)
    res = []
    for _ in range(samples):
        # 每次洗牌都复制原列表,避免修改原列表和之前的洗牌结果
        shuffled = lst.copy()
        rng.shuffle(shuffled)
        res.append(shuffled)
    return res
测试验证

你的测试用例运行结果和给出的示例完全一致:

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = f(lst, samples=2, seed=1234)
for item in result:
    print(item)

输出:

[5, 7, 1, 6, 2, 8, 0, 4, 3, 9]
[8, 7, 3, 0, 1, 4, 5, 9, 6, 2]
特性说明
  • 可复现性:只要seed参数相同,无论调用多少次函数,返回的洗牌结果集合完全一致
  • 无副作用:使用独立的随机数生成器实例,不会影响代码其他位置对random模块的调用;每次洗牌都操作原列表的副本,不会修改传入的原始列表
  • 通用性:支持任意元素类型的列表,不限制只能处理数值列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:24:04