Python随机挑选列表的元素

时间:2022-06-01 18:49:52

Python提供了几种方法用于随机抽样。

random.choice

如果对随机的结果要求不严格,可以使用Python提供的random.choice。

import random

list = ['a','b','c','d']
print(random.choice(list))

random.choice可以称为伪随机,如果对random给定种子,那么它随机出来的结果总是一样的。

>>> random.seed(1)
>>> random.choice(list)
'b'
>>> random.seed(1)
>>> random.choice(list)
'b'

只要重置了random.seed,使用random.choice获得的结果总是一样

random.SystemRandom

如果需要密码安全的随机,可以使用random.SystemRandom。

import random

list = ['a','b','c','d']
sr = random.SystemRandom()
print(sr.choice(list))

Python 3.6 secrets

如果使用的是Python 3.6,更安全的随机推荐使用secrets

import secrets
list = ['a','b','c','d']
print(secrets.choice(list))

secrets模块实际上也是使用SystemRandom实现。