创建增量列表

时间:2016-09-20 12:34:21

标签: python list increment

当我尝试创建从ab的增量列表时(类似于[1,1.1,1.2,1.3,...,2](a = 1,b = 2) ),然后我开始遇到我提出的具体代码的问题:

def Range(a,b,r):
    lst1=[]
    y=a
    while y<b:
        lst1.append(round(float(y+10**-r),r))
        y+=10**-r
    return lst1

print Range(1,2,3)

此处,r是我的增量(10**-r)的力量。对于r=1r=2,代码工作正常并以[...,2.0]结束。但对于r=3r=4,它分别以[...,2.001]和[...,2.0001]结束。但是,对于r=5r=6,它会回到2结束。我的代码是否有问题,或者这是某种错误?

1 个答案:

答案 0 :(得分:2)

  

说,要获得2.001的元素,丢失必须采用y = 2.000

那不是真的;例如,y可能会变成1.99999999999997。

您检查y < b,然后将round(float(y+10**-r),r)添加到列表中。当然可能第一个是真的,但第二个仍然大于b。

要查看正在发生的事情,请删除舍入内容,并查看列表中倒数第二个数字,如果它出现“错误”。