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

Python用random模块生成带约束的无重复随机嵌套列表

实现方法

核心用Python标准库random模块的sample方法即可,该方法天生支持无重复随机抽样,完全匹配需求。

规则对应

  • 并行遍历两个配置列表,按索引一一匹配「子列表元素个数」和「子列表元素最大值」的约束
  • 每个子列表的可选值范围是*1到对应最大值(包含两端)*的整数
  • 无重复抽样直接通过random.sample实现,不需要手动写去重逻辑

完整可运行代码

import random

a = [[10], [8], [4]]  # 配置:对应位置子列表的元素个数
b = [[15], [10], [5]] # 配置:对应位置子列表允许的最大元素值
new_list = []

for count_item, max_item in zip(a, b):
    elem_num = count_item[0]
    upper_limit = max_item[0]
    # 合法性校验:避免要求的元素数超过可选值总数导致运行错误
    if elem_num > upper_limit:
        raise ValueError(f"位置{len(new_list)}的子列表要求{elem_num}个不重复元素,但最大取值仅为{upper_limit},无法生成")
    # 从1到upper_limit的整数中随机抽取elem_num个不重复值
    sub_list = random.sample(range(1, upper_limit + 1), elem_num)
    new_list.append(sub_list)

print(new_list)

运行效果

多次运行代码会生成符合要求的随机结果,例如:

  • 输出1:[[1, 3, 4, 7, 8, 9, 10, 12, 13, 15], [2, 3, 4, 5, 6, 7, 9, 10], [1, 2, 4, 5]]
  • 输出2:[[2, 5, 6, 8, 9, 11, 12, 13, 14, 15], [1, 3, 4, 5, 6, 7, 8, 10], [2, 3, 4, 5]]
    和题目给出的示例格式、约束完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:15:41