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

如何生成5个含1-100不重复数字的随机列表并修复Python代码报错

报错原因
  • 核心错误:你执行All_list.append(list)时,追加的是Python内置的list类型本身,不是空的列表实例。直接调用类型的实例方法append传入整数参数,就会触发类型不匹配的报错,正确写法是追加[]或者list()生成的空列表实例。
  • 索引错误:循环变量i从0开始遍历range(5),你使用All_list[i-1]取元素时,首次循环会取到索引为-1的元素,和你刚追加的列表位置不匹配,正确索引应为i。
  • 逻辑漏洞:你没有在生成每个新列表前重置number_list,第一个列表生成完成后number_list就被清空,后续循环无法取出新的随机数。
实现代码

先明确两种常见需求,你可以按需选择:

需求1:每个列表单独包含1-100的不重复随机数(列表内部无重复,允许数字在不同列表重复)

使用random.shuffle实现更高效,避免频繁调用remove带来的性能损耗:

import random

All_list = []
for _ in range(5):
    # 每次生成新列表前重置待选数字池
    num_list = list(range(1, 101))
    # 打乱列表顺序
    random.shuffle(num_list)
    All_list.append(num_list)

需求2:5个列表全局共用1-100的所有数字,每个数字仅出现一次(总元素数为100)

import random

All_list = []
# 先打乱全部1-100的数字
total_nums = list(range(1, 101))
random.shuffle(total_nums)
# 拆分到5个列表,每个列表20个元素
for i in range(5):
    All_list.append(total_nums[i*20 : (i+1)*20])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:51:00