How to generate list of random integers, but only using specified integers? (Python)
本问题已经有最佳答案,请猛点这里访问。
这个问题可以概括为随机创建一个大小为n的列表,其中包含预先指定的整数(假设分布均匀)。希望如下所示:
也许语法看起来像
1 | randList([list of integers], size) |
这样就可以生产出以下产品:
1 2 | randList([1,-1], 7) >>> [1,-1,1,-1,-1,-1,1] #(random) |
或
1 2 | randList([2,3,4], 10) >>> [4,3,4,2,2,4,2,3,4,3] #(random) |
我对python有点陌生,在我看到的任何地方,它总是返回一系列介于低值和高值之间的值,而不是特定的值。谢谢
1 | vals = [random.choice(integers) for _ in range(num_ints)] |
这是一个完全有效的例子。您只需将EDOCX1的值(1)替换为要从中选择的数字列表,并将
1 2 3 | import random choices = list(range(10)) random_sample = [random.choice(choices) for _ in range(10)] |
如果您希望将其作为一个函数来使用,这将是一种简单的方法:
1 2 3 | import random def random_list(choices, size): return [random.choice(choices) for _ in range(size)] |
你想用
但是,即使您只能在一个范围内执行值:
I am a bit new to python and everywhere I look it is always returning
a range of values between a low and a high
…你仍然可以在这里做你想做的,假设低/高的限制是0->你的列表的大小,然后在这个范围内生成每个随机的int,在索引处取这个数字。