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

如何生成唯一随机整数列表?求完善Python随机整数列表生成函数

完善随机整数列表生成函数

基础版本(允许重复值)

直接完善你提供的list_of_nums函数,实现生成指定数量、指定范围的随机整数列表:

import random

# 检查列表是否全为唯一整数
def allunique(x):
    unique_or_not = []
    for item in x:
        if item in unique_or_not:
            return False
        unique_or_not.append(item)
    return True

# 生成指定数量、指定范围的随机整数列表
def list_of_nums():
    num_of_values = int(input("请输入要生成的数值数量:"))
    start = int(input("请输入数值范围的起始数:"))
    end = int(input("请输入数值范围的结束数:"))
    
    # 初始化空列表存储随机数
    random_list = []
    for _ in range(num_of_values):
        # 生成[start, end]范围内的随机整数(包含两端)
        random_num = random.randint(start, end)
        random_list.append(random_num)
    
    return random_list

# 测试示例
if __name__ == "__main__":
    generated_list = list_of_nums()
    print("生成的随机列表:", generated_list)
    print("列表是否全为唯一整数:", allunique(generated_list))

关键说明:

  • 初始化空列表random_list用于存放生成的随机数
  • 使用random.randint(start, end)生成包含起始和结束值的随机整数(如果需要左闭右开的范围,可以改用random.randrange(start, end+1))
  • 循环num_of_values次,每次生成的数直接追加到列表,最后返回完整列表

进阶版本(生成无重复的随机整数列表)

如果需求是生成保证全唯一的随机整数列表,直接用random.sample方法会比生成后再用allunique检查更高效,同时需要处理输入数量超过范围唯一数上限的情况:

def list_of_unique_nums():
    num_of_values = int(input("请输入要生成的唯一数值数量:"))
    start = int(input("请输入数值范围的起始数:"))
    end = int(input("请输入数值范围的结束数:"))
    
    # 计算范围内的唯一整数总数
    total_available = end - start + 1
    if num_of_values > total_available:
        print(f"错误:范围[{start}, {end}]内仅包含{total_available}个唯一整数,无法生成{num_of_values}个不重复的数")
        return None
    
    # 直接从范围内选取指定数量的不重复随机数
    return random.sample(range(start, end+1), num_of_values)

关键说明:

  • random.sample(population, k)会从population中随机选取k个不重复的元素,返回列表
  • 先判断输入的数量是否超过范围能提供的唯一数上限,避免报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:25:10