列表中的python随机序列

jus*_*hap 0 python

如果我的列表范围从0到9,例如.我如何使用random.seed函数从该范围的数字中随机选择?另外我如何定义结果的长度.

import random

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = 10
random.seed(a)
length = 4

# somehow generate random l using the random.seed() and the length.
random_l = [2, 6, 1, 8]
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 9

使用random.sample.它适用于任何序列:

>>> random.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 4)
[4, 2, 9, 0]
>>> random.sample('even strings work', 4)
['n', 't', ' ', 'r']
Run Code Online (Sandbox Code Playgroud)

random模块中的所有函数一样,您可以像通常那样定义种子:

>>> import random
>>> lst = list(range(10))
>>> random.seed('just some random seed') # set the seed
>>> random.sample(lst, 4)
[6, 7, 2, 1]
>>> random.sample(lst, 4)
[6, 3, 1, 0]
>>> random.seed('just some random seed') # use the same seed again
>>> random.sample(lst, 4)
[6, 7, 2, 1]
>>> random.sample(lst, 4)
[6, 3, 1, 0]
Run Code Online (Sandbox Code Playgroud)