调用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
相关产品推荐
相关产品推荐

