如何从列表中随机选择一个范围内的整数?

问题描述 投票:0回答:2

我正在将 CSV 文件中的一些信息提取到列表中,并希望从该列表中选取一个随机值。但是,该值必须存在于指定范围内。 例如,如果我有一个像这样的列表:

[12, 100, 144, 50, 65, 30, 500, 450, 6]

并且我有一个范围

55
-
300
,我希望能够从该列表中随机选择满足该范围的任何值。可以说
100
144
65
,但千万不要说
12
6
30

我在任何地方都找不到解决方案,并且

random
模块似乎没有任何直接支持此功能的功能。
random.randrange()
仅生成某个范围内的值,
random.choice()
仅从列表中选择一个元素,没有范围适用于它。

我本质上是在寻找一种可以将这两个功能结合起来的功能。

python random
2个回答
3
投票

您可以过滤列表中的数字以找到适当范围内的数字,然后从这些数字中随机选择一个。

lst = [12, 100, 144, 50, 65, 30, 500, 450, 6]
number = random.choice([n for n in lst if 55 <= n <= 300])

0
投票

如果您首先在这些整数之间过滤列表,然后从过滤后的列表中进行选择,您将获得所需的输出:

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)
© www.soinside.com 2019 - 2024. All rights reserved.