Python 找到数字的位置

Python 找到数字的位置,python,random,Python,Random,我需要找到一个在一定范围内随机选择的数字的位置。 例:(开始、停止、步骤):(3,6,1) 这对应于(3,4,5,6) 其中一个数字是随机选择的,我想找到一种方法,在不使用列表的情况下,在枚举之后获得数字的位置 代码如下所示: tuple_val = (3,6,1) #or any value rand_val = randint(tuple_val[0], tuple_val[1]) for val in range(tuple_val[0], tuple_val[1], tuple_val

我需要找到一个在一定范围内随机选择的数字的位置。 例:
(开始、停止、步骤):(3,6,1)
这对应于
(3,4,5,6)
其中一个数字是随机选择的,我想找到一种方法,在不使用列表的情况下,在枚举之后获得数字的位置

代码如下所示:

tuple_val = (3,6,1) #or any value
rand_val = randint(tuple_val[0], tuple_val[1]) 
for val in range(tuple_val[0], tuple_val[1], tuple_val[2]):
    if rand_val == val:
        #FIND INDEX OF rand_val
如何查找此随机数的索引?

您可能希望使用:

您可能希望使用:


由于您的索引是在
范围内运行的
,因此查找索引的方法要简单得多,根本不需要进行循环

index=(rand\u val-tuple\u val[0])/tuple\u val[2]
index=(rand_val-start)/*步骤

例如,如果您想为示例中的数字4编制索引,它只是:
(4-3)/1=1


根据您的注释,该数字必须存在。

因为您在
范围内运行
,所以查找索引的方法要简单得多,根本不需要循环

index=(rand\u val-tuple\u val[0])/tuple\u val[2]
index=(rand_val-start)/*步骤

例如,如果您想为示例中的数字4编制索引,它只是:
(4-3)/1=1


根据您的注释,数字必须存在。

无需迭代,因为范围可以用数学描述(Python 3):


无需迭代,因为可以用数学方法描述范围(Python 3):

考虑你的

tuple_val = (3,6,1) #or any value
rand_val = randint(tuple_val[0], tuple_val[1]) 
然后

表示到区间起点的差值,以及

index = (rand_val - tuple_val[0]) / tuple_val[2]
提供与正在查找的索引相同的步骤数。

请考虑您的

tuple_val = (3,6,1) #or any value
rand_val = randint(tuple_val[0], tuple_val[1]) 
然后

表示到区间起点的差值,以及

index = (rand_val - tuple_val[0]) / tuple_val[2]

提供与正在查找的索引相同的步骤数。

在您的示例中,
rand\u val=randint(tuple\u val[0],tuple\u val[1])
可能由于步骤而返回不存在的整数;假设它只接受现有值。这只是为了了解如何在示例中动态查找索引
rand_val=randint(tuple_val[0],tuple_val[1])
可能会由于步骤而返回不存在的整数;假设它只接受现有值。这只是为了了解如何动态查找索引
index = (rand_val - tuple_val[0]) / tuple_val[2]