Python - 生成相同的随机数

the*_*ner 0 python random python-2.7

def main():
    x = [randint(1,100) for i in range(1,100)]
    return x
Run Code Online (Sandbox Code Playgroud)

这将返回100个随机数bt 1和100.每次调用该函数时,它都会返回不同的数字序列.我想要的是每次都得到相同的数字序列.也许将结果保存到某事?

Sha*_*mar 8

你可以提供一些固定的种子.

import random

def main():
    random.seed(9001)
    x = [random.randint(1,100) for i in range(1,100)]
    return x
Run Code Online (Sandbox Code Playgroud)

有关种子的更多信息:random.seed():它有什么作用?


pvg*_*pvg 6

这是您的代码之后的基本示例

import random
s = random.getstate()

print([random.randint(1,100) for i in range(10)])

random.setstate(s)
print([random.randint(1,100) for i in range(10)])
Run Code Online (Sandbox Code Playgroud)

在两次调用中,您获得相同的输出.关键是,您可以随时检索并稍后重新分配rng的当前状态.