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

random.shuffle返回None,如何获取打乱后的列表?

解决random.shuffle()返回None的问题

random.shuffle() 是原地修改列表的方法——它会直接打乱传入的列表本身,不会返回新的打乱后列表,函数执行完毕后返回值固定为None,这就是你打印shufflegen得到None的原因。

你可以通过两种方式获取打乱后的列表:

方式1:直接使用被原地修改的原列表

既然random.shuffle()已经修改了genwords,直接打印原列表即可:

import random

testlist1 = ["1", "2"]
testlist2 = ["1a", "1b"]
testlist3 = ["2a", "2b"]

def generator(testlist1, testlist2, testlist3):
    genwords = [random.choice(testlist1), random.choice(testlist2), random.choice(testlist3)]
    random.shuffle(genwords)  # 原地打乱genwords
    print(genwords)  # 直接输出被修改后的原列表

generator(testlist1, testlist2, testlist3)

方式2:使用random.sample()获取新的打乱列表

如果不想修改原genwords,可以用random.sample(),它会返回一个全新的打乱后列表,原列表保持不变:

import random

testlist1 = ["1", "2"]
testlist2 = ["1a", "1b"]
testlist3 = ["2a", "2b"]

def generator(testlist1, testlist2, testlist3):
    genwords = [random.choice(testlist1), random.choice(testlist2), random.choice(testlist3)]
    shufflegen = random.sample(genwords, len(genwords))  # 生成新的打乱列表
    print(shufflegen)

generator(testlist1, testlist2, testlist3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:55:21