如何从列表中随机选择一个项目?

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

相关文章
相关标签/搜索