Python 如何创建范围递增计数器?

Python 如何创建范围递增计数器?,python,Python,在我正在运行的脚本中,有一个内存泄漏问题(由于使用的是专有软件),它阻止脚本运行超过325k次迭代。为了解决这个问题,我创建了一个值列表,让它在for循环中迭代,如下所示: squery = ['OBJECTID >=0 AND OBJECTID <=300000', 'OBJECTID >=300001 AND OBJECTID <=600000', 'OBJECTID >=600001 AND OBJECTID <=900000', .... 'OBJE

在我正在运行的脚本中,有一个内存泄漏问题(由于使用的是专有软件),它阻止脚本运行超过325k次迭代。为了解决这个问题,我创建了一个值列表,让它在
for
循环中迭代,如下所示:

squery = 
['OBJECTID >=0 AND OBJECTID <=300000',
'OBJECTID >=300001 AND OBJECTID <=600000',
'OBJECTID >=600001 AND OBJECTID <=900000',
....
'OBJECTID >=8700001 AND OBJECTID <=8766184']

for query in squery:
    do work
squery=
['OBJECTID>=0,OBJECTID=300001,OBJECTID=600001,OBJECTID=8700001,OBJECTID
squery=
['OBJECTID>=%s和OBJECTID
squery=

['OBJECTID>=%s和OBJECTID为了完整起见,生成器还可以很好地解决此问题:

def generator_function(n):
    for i in range(0,n):
        yield ('OBJECTID>=%s AND OBJECTID<=%s' % (i*300000+(i!=0),(i+1)*300000))

# now use it:
for each_string in generator_function(3):
    print each_string
def发生器功能(n): 对于范围(0,n)内的i:
yield('OBJECTID>=%s和OBJECTID仅为了完整性,生成器还可以很好地解决此问题:

def generator_function(n):
    for i in range(0,n):
        yield ('OBJECTID>=%s AND OBJECTID<=%s' % (i*300000+(i!=0),(i+1)*300000))

# now use it:
for each_string in generator_function(3):
    print each_string
def发生器功能(n): 对于范围(0,n)内的i:
产量('OBJECTID>=%s和ObjectdPerfect,谢谢。我不知道你能用这种方式创建列表!它叫
列表理解
:我对这些很熟悉,只是不是用这种方法来使用它们。总是有更多的东西要学。太好了,谢谢。我不知道你能用这种方式创建列表!它叫
列表理解
:我是fam我知道这些,但不是使用这些方法。总是有更多的东西要学。谢谢你的替代方法。谢谢你的替代方法。