如何生成随机整数列表,但只使用指定的整数? (蟒蛇)

时间:2015-09-29 20:35:53

标签: python list numpy random integer

这个问题可以推广到随机创建一个大小为n的列表,其中包含预先指定的整数(假设均匀分布)。希望它看起来如下:

也许语法看起来像

randList([list of integers], size)

然后可以产生以下内容:

randList([1,-1], 7)
>>> [1,-1,1,-1,-1,-1,1] #(random)

randList([2,3,4], 10)
>>> [4,3,4,2,2,4,2,3,4,3] #(random)

我对python有点新,我看到它始终返回低值和高值之间的一系列值,而不是特定值。感谢

3 个答案:

答案 0 :(得分:5)

vals = [random.choice(integers) for _ in range(num_ints)]

答案 1 :(得分:2)

这是一个完全有效的例子。您需要做的就是将choices的值替换为您要从中选择的数字列表,并将range(10)替换为range(number_of_items_i_want)

import random
choices = list(range(10))
random_sample = [random.choice(choices) for _ in range(10)]

如果您希望将此功能作为一项功能以便重复使用,那么这将是一种简单的方法:

import random
def random_list(choices, size):
    return [random.choice(choices) for _ in range(size)]

答案 2 :(得分:1)

您想使用random.choice,请参阅this SO answer进行讨论。

但是,即使您只能在范围内执行值:

  

我对python有点新意,到处都是我总是回来的   低值和高值之间的一系列值

......你仍然可以在这里做你想做的事,假设低/高限为0 - >列表的大小,然后使用该范围内生成的每个随机int,取该索引处的