假设我有如下列表: html
foo = ['a', 'b', 'c', 'd', 'e']
今后列表中随机检索项目的最简单方法是什么? python
若是还须要索引,请使用random.randrange
dom
from random import randrange random_index = randrange(len(foo)) print(foo[random_index])
若是您须要索引,请使用: spa
import random foo = ['a', 'b', 'c', 'd', 'e'] print int(random.random() * len(foo)) print foo[int(random.random() * len(foo))]
random.choice作一样的事情:) code
我提出了一个脚本,用于从列表中删除随机拾取的项目,直到它为空: htm
维护一个set
并删除随机拾取的元素(带有choice
),直到列表为空。 索引
s=set(range(1,6)) import random while len(s)>0: s.remove(random.choice(list(s))) print(s)
三个运行给出三个不一样的答案: element
>>> set([1, 3, 4, 5]) set([3, 4, 5]) set([3, 4]) set([4]) set([]) >>> set([1, 2, 3, 5]) set([2, 3, 5]) set([2, 3]) set([2]) set([]) >>> set([1, 2, 3, 5]) set([1, 2, 3]) set([1, 2]) set([1]) set([])
咱们也能够使用randint作到这一点。 rem
from random import randint l= ['a','b','c'] def get_rand_element(l): if l: return l[randint(0,len(l)-1)] else: return None get_rand_element(l)
这是带有定义随机索引的变量的代码: get
import random foo = ['a', 'b', 'c', 'd', 'e'] randomindex = random.randint(0,len(foo)-1) print (foo[randomindex]) ## print (randomindex)
这是没有变量的代码:
import random foo = ['a', 'b', 'c', 'd', 'e'] print (foo[random.randint(0,len(foo)-1)])
这是用最短和最聪明的方法实现的代码:
import random foo = ['a', 'b', 'c', 'd', 'e'] print(random.choice(foo))
(python 2.7)