如何从以下列表中随机检索项目?
foo = ['a', 'b', 'c', 'd', 'e']
如何从以下列表中随机检索项目?
foo = ['a', 'b', 'c', 'd', 'e']
当前回答
简而言之,使用random.sample方法
示例方法返回一个新列表,其中包含总体中的元素,而保持原始总体不变。结果列表按选择顺序排列,因此所有子切片也将是有效的随机样本。
import random
lst = ['a', 'b', 'c', 'd', 'e']
random.seed(0) # remove this line, if you want different results for each run
rand_lst = random.sample(lst,3) # 3 is the number of sample you want to retrieve
print(rand_lst)
Output:['d', 'e', 'a']
这是运行代码https://onecompiler.com/python/3xem5jjvz
其他回答
如果需要索引,只需使用:
import random
foo = ['a', 'b', 'c', 'd', 'e']
print int(random.random() * len(foo))
print foo[int(random.random() * len(foo))]
random.choice也会这样做:)
foo = ['a', 'b', 'c', 'd', 'e']
number_of_samples = 1
在Python 2中:
random_items = random.sample(population=foo, k=number_of_samples)
在Python 3中:
random_items = random.choices(population=foo, k=number_of_samples)
推荐的numpy方式是使用显式RNG:
from numpy.random import default_rng
rng = default_rng()
rng.choice(foo)
你可以:
from random import randint
foo = ["a", "b", "c", "d", "e"]
print(foo[randint(0,4)])
如果还需要索引,请使用random.randrange
from random import randrange
random_index = randrange(len(foo))
print(foo[random_index])