如何從列表中隨機選擇一個項目?

假設我有如下列表: html

foo = ['a', 'b', 'c', 'd', 'e']

今後列表中隨機檢索項目的最簡單方法是什麼? python


#1樓

若是還須要索引,請使用random.randrange dom

from random import randrange
random_index = randrange(len(foo))
print(foo[random_index])

#2樓

若是您須要索引,請使用: 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


#3樓

我提出了一個腳本,用於從列表中刪除隨機拾取的項目,直到它爲空: 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([])

#4樓

咱們也能夠使用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)

#5樓

這是帶有定義隨機索引的變量的代碼: 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)

相關文章
相關標籤/搜索