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

调用shuffle打乱列表后打印出None的原因排查

代码问题分析与解决

你的代码输出None的核心问题是**random.shuffle()函数的特性**:

  • shuffle()是原地修改列表的函数,它不会返回打乱后的新列表,执行后直接修改传入的原列表,函数本身的返回值就是None。你把这个返回值赋值给shuffleday,打印它自然得到None。

两种修正方案:

方案1:直接使用原地修改后的原列表

from random import *
day = list(range(1, 29))
day = day[3:29]
shuffle(day)  # 原地打乱day列表
print(day)  # 打印修改后的day

方案2:保留原列表,生成新的打乱列表

如果不想改动原列表,可以用sample()函数生成新的打乱后列表:

from random import *
day = list(range(1, 29))
day = day[3:29]
shuffleday = sample(day, len(day))  # 生成与原列表长度一致的打乱新列表
print(shuffleday)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:31:13