如何生成随机整数列表,但只使用指定的整数? (Python)
How to generate list of random integers, but only using specified integers? (Python)
这个问题可以概括为随机创建一个大小为 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 有点陌生,无论我看到哪里,它总是返回一个介于低和高之间的值范围,而不是特定值。谢谢
您想使用 random.choice
,请参阅 this SO answer 进行讨论。
但是,即使您只能在一个范围内取值:
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
...你仍然可以在这里做你想做的,只是假设 low/high 限制为 0 -> 列表的大小,然后在该范围内生成每个随机整数,取编号 在那个索引 .
vals = [random.choice(integers) for _ in range(num_ints)]
这是一个完整的示例。您需要做的就是将 choices
的值替换为您想要 select 的数字列表,并将 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)]
这个问题可以概括为随机创建一个大小为 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 有点陌生,无论我看到哪里,它总是返回一个介于低和高之间的值范围,而不是特定值。谢谢
您想使用 random.choice
,请参阅 this SO answer 进行讨论。
但是,即使您只能在一个范围内取值:
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
...你仍然可以在这里做你想做的,只是假设 low/high 限制为 0 -> 列表的大小,然后在该范围内生成每个随机整数,取编号 在那个索引 .
vals = [random.choice(integers) for _ in range(num_ints)]
这是一个完整的示例。您需要做的就是将 choices
的值替换为您想要 select 的数字列表,并将 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)]