0

我有一组值

d = [1,2,3,4,.....100]

我想知道如何使用创建几个一维数组(3,20 或 100)

random.shuffle(d) 

在一个循环中?

4

2 回答 2

1
import copy, random

result = []
d = range(1, 101)
for i in xrange(100):
    result.append(copy.copy(d))
    random.shuffle(result[-1])
于 2013-05-02T17:09:06.350 回答
1

改为使用random.sample(),指定大小:

sizes = (3, 20, 100)

random_lists = [random.sample(d, size) for size in sizes]

现在random_lists包含 3 个随机列表,从 中挑选d,分别具有 3、20 和 100 个元素。

如果您需要许多长度和元素与 相同的混洗列表d,请使用random.sample()

random_lists = [random.sample(d, len(d)) for _ in range(3)]

现在random_lists由 3 个 100 个元素的列表组成,每个列表都是. drandom.sample()文档中:

返回一个新列表,其中包含人口中的元素,同时保持原始人口不变。结果列表按选择顺序排列,因此所有子切片也将是有效的随机样本。

于 2013-05-02T17:09:07.230 回答