循环将范围 (0,10) 标准化为 (0,1)

loop to normalize range (0,10) in to (0,1)

我需要的是divide/spread0到1,根据大于2的单数。 像数字 5 所以 0 到 5 会这样划分

0.00  
0.25
0.50
0.75
1.00

列表中有 5 个值

我的另一个问题是如何获得这样的序列,其中中间数字为 1,第一个和最后一个数字为 0,如果数字为 10。

0.00
0.25
0.50
0.75
1.00
1.00
0.75
0.50
0.25
0.00

您应该使用 range(0,11) 来获取从 0 到 10 的所有数字。

range(..)的上限是独占(意思是不是枚举),所以需要在range(..)函数中增加一个步骤:

for i in range(0,<b>11</b>):
     b = i*(1.0/10)
     print b

也就是说,如果你想创建这样的数组,你可以使用 numpy.arange(..):

>>> import numpy as np
>>> np.arange(0, 1.1, 0.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])

因此,您可以为偏移、结束和步长参数指定浮点数。

关于你的第二个问题,你可以 itertools.chain 迭代在一起,比如:

from itertools import chain

for i in chain(range(0, 11), range(10, -1, -1)):
    print(i/10.0)

因此我们有 一个 range(..)0 迭代到 10 (包括两者),还有一个从 10,到 0(包括两者)。

range 0 to 10 会给你0到9的​​数字,这里有一些实用的解释:

>>> list(range(0,10))  
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> list(range(0,11))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> 
>>> list(range(0,1))
[0]

>>>