Python随机挑选列表的元素
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实现。