如何在Python中生成0到1之间的52个浮点数?range写法仅输出0如何解决
问题解决说明
错误原因
- Python内置的
range()函数仅支持整数参数,生成的也全部是整数序列,无法直接生成浮点数。 range(起始值, 结束值, 步长)的执行逻辑是:从起始值开始,每次累加步长,得到的数值小于结束值时才会保留,否则停止循环。你写的range(0,1,52),第一次取值是0,累加52之后得到52,已经大于结束值1,所以循环只执行一次,只会输出0。
正确实现方法
方法1:原生Python实现(无需安装额外库,适合入门学习)
如果要生成0到1之间的52个均匀分布的浮点数,可以通过整数乘步长的方式实现:
# 场景1:生成的数值包含0,不包含1 num_count = 52 step = 1 / num_count float_list = [i * step for i in range(num_count)] print(float_list) # 场景2:生成的数值同时包含0和1 float_list_with_1 = [i * (1/(num_count - 1)) for i in range(num_count)] print(float_list_with_1)
方法2:使用numpy库实现(适合后续需要做数值计算的场景)
如果已经安装了numpy库,可以直接调用linspace方法快速生成:
import numpy as np # endpoint参数设为False表示不包含1,默认True表示包含1 float_list = np.linspace(0, 1, 52, endpoint=False).tolist() print(float_list)
内容的提问来源于stack exchange,提问作者Tom Burke
相关产品推荐
相关产品推荐

