我正在将 CSV 文件中的一些信息提取到列表中,并希望从该列表中选取一个随机值。但是,该值必须存在于指定范围内。 例如,如果我有一个像这样的列表:
[12, 100, 144, 50, 65, 30, 500, 450, 6]
并且我有一个范围
55
-300
,我希望能够从该列表中随机选择满足该范围的任何值。可以说 100
、144
或 65
,但千万不要说 12
、6
、30
等
我在任何地方都找不到解决方案,并且
random
模块似乎没有任何直接支持此功能的功能。
random.randrange()
仅生成某个范围内的值,random.choice()
仅从列表中选择一个元素,没有范围适用于它。
我本质上是在寻找一种可以将这两个功能结合起来的功能。
您可以过滤列表中的数字以找到适当范围内的数字,然后从这些数字中随机选择一个。
lst = [12, 100, 144, 50, 65, 30, 500, 450, 6]
number = random.choice([n for n in lst if 55 <= n <= 300])
如果您首先在这些整数之间过滤列表,然后从过滤后的列表中进行选择,您将获得所需的输出:
lst = [12, 100, 144, 50, 65, 30, 500, 450, 6]
filtered_lst = [i for i in lst if i > 55 and i < 300]
random.choice(filtered_lst)