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实现。

版权声明:著作权归作者所有。

相关推荐

Python 3.5拼接列表的新语法

在Python 3.5之前的版本,拼接列表可以有这两种方法:1、列表相加list1 = [1,2,3] list2 = [4,5,6] result = list1 + list2 结果为一个新的列表2、在原来列表上扩展list1 = [1,2,3] list2 = [

Python获取列表的元素个数

len()为Python的内置函数,它会返回对象里的项目数,这些对象可以是sequence(如string, bytes, tuple, list, range),也可以是collection (如dictionary, set)Python里的列表没有类似于length或size的属性和方法,可以使用len来获取列表的元素个数>&

Python 3按指定的元素分割列表

Python 3有多种方法可以用来分割列表。示例有以下列表li = ['a','b','c','.','aa','bb','cc','.','aaa','bbb','ccc'] 现需要按“.”分割列表。使用itertools.groupby>>>li = ['a','b','c','.','aa','bb','cc','.','a

Python:查询列表给定元素的索引

单一索引列表的index()函数返回列表里第一次遇到给定元素的索引。>>> ["a", "b", "c"].index("b") 1 多个索引如果需要返回给定元素的所有索引,则要遍历列表:indexes = [index for i

Python 3检查空列表推荐的方式

空sequence(包括字符串,列表和元组)实际为false,我们可以根据这一点来检查空序列。这也是PEP 8推荐的方式。推荐:if not seq: if seq: 不推荐:if len(seq): if not len(seq):

Python字典列表按字典的键值排序

列表list_to_be_sorted = [{'name':'Jack', 'age':39}, {'name':'Bob', 'age':10}] 对列表按name的值排序得到:list_to_be_sorted = [{'name':'Bob', 'age':39}, {'name':'Jack',&n