假設我有如下列表: 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)