从列表中随机取 n 项

Take n items at random from a list

我有一个列表 L,想 return 从中随机生成一个包含 n 项的列表。

现在我依靠 itertools.combinations 然后随机选择一个,但我必须等待一段时间,直到列表看起来像在开始时没有被很多项目卡住的东西列表,所以它不是真的 "random."

使用 random.sample 从人口 n 的列表中抽取 K 个项目。

>>> import random
>>> random.sample(range(100), 5)
[56, 1, 0, 60, 61]
from random import randint

L=[1,2,3,4,5,6]

a=len(L)
n=5

K=[ L[randint(0,a-1)%a] for x in xrange(0,n)]

print K

示例输出

[6, 4, 3, 2, 5]