如何在使用random.choices时固定随机种子以获得一致输出?
固定随机种子实现重复输出
嘿,这事儿超简单!Python里的random模块用的是伪随机数生成器——意思是只要给它一个固定的起始“种子”,它生成的随机序列就会完全一致。
你只需要在调用random.choices()之前,加上一行random.seed()并传入一个固定数值就行。下面是修改后的完整代码:
import random # 设置固定随机种子,数值可以是任意整数,这里用42做例子 random.seed(42) l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5] l_new = random.choices(l, k=30) print(l_new)
不管你运行多少次这段代码,输出都会和你想要的预期结果完全一致:
[22.2, 11.1, 33.3, 55.5, 33.3, 22.2, 33.3, 11.1, 22.2, 11.1, 11.1, 33.3, 33.3, 22.2, 33.3, 22.2, 11.1, 11.1, 55.5, 55.5, 33.3, 11.1, 55.5, 22.2, 33.3, 33.3, 55.5, 22.2, 22.2, 33.3]
原理很直白:种子就像随机数生成器的“起始密码”,同一个密码会让它按完全相同的顺序生成随机数,自然每次选出来的元素序列也就一模一样了。你可以把种子换成其他整数(比如100、2024),只要每次运行都用同一个数值,结果就不会变~
内容的提问来源于stack exchange,提问作者Natasha




