Python 循环固定时间
Python loop for fixed times
我有一个这样的循环:
def handle(self, *args, **options):
database.objects.all().delete()
for x in list:
db.objects.create(
...add some data to database table...)
该列表包含 100 个值。但是我可能 运行 一次只有 30 个值的循环。脚本末尾需要 运行 所有 100 个值。
为什么我有这么奇怪的问题,是脚本从第三方数据库中取数据,但是允许一次取30个对象
时间。所以我需要的是获取 30 个值的脚本。以某种方式暂停并获取接下来的 30 个值,最后一次获取剩下的 10 个值并完成。
这样的事情可行吗,还是我需要将我的列表分成许多小列表并 运行 一次一个?
试试这个
a=0
for x in list:
#whatever you are doing
a+=1
if a==30:
break
#Then do it again
for x in list[a:]:
#whatever you are doing
a+=1
if a==60:
break
#Again
for x in list[a:]:
#whatever you are doing
a+=1
if a==90:
break
#Last Time!
for x in list[a:]:
#whatever you are doing
这很容易使用切片。 [:30]
指的是从头到第30个元素的子列表。 [30:]
表示从第30个元素到末尾的子列表
要处理 30 个值块中的列表,您可以这样做:
while len(list) > 0:
dostuff(list[:30])
list = list[30:]
要在每 30 个元素后执行操作,您可以执行以下操作:
while len(list) > 0:
for item in list[:30]:
doSomething(item)
dostuff()
list = list[30:]
我建议您将列表分成 30 个元素的间隔,然后在每个间隔上调用该函数。
我有一个这样的循环:
def handle(self, *args, **options):
database.objects.all().delete()
for x in list:
db.objects.create(
...add some data to database table...)
该列表包含 100 个值。但是我可能 运行 一次只有 30 个值的循环。脚本末尾需要 运行 所有 100 个值。
为什么我有这么奇怪的问题,是脚本从第三方数据库中取数据,但是允许一次取30个对象 时间。所以我需要的是获取 30 个值的脚本。以某种方式暂停并获取接下来的 30 个值,最后一次获取剩下的 10 个值并完成。
这样的事情可行吗,还是我需要将我的列表分成许多小列表并 运行 一次一个?
试试这个
a=0
for x in list:
#whatever you are doing
a+=1
if a==30:
break
#Then do it again
for x in list[a:]:
#whatever you are doing
a+=1
if a==60:
break
#Again
for x in list[a:]:
#whatever you are doing
a+=1
if a==90:
break
#Last Time!
for x in list[a:]:
#whatever you are doing
这很容易使用切片。 [:30]
指的是从头到第30个元素的子列表。 [30:]
表示从第30个元素到末尾的子列表
要处理 30 个值块中的列表,您可以这样做:
while len(list) > 0:
dostuff(list[:30])
list = list[30:]
要在每 30 个元素后执行操作,您可以执行以下操作:
while len(list) > 0:
for item in list[:30]:
doSomething(item)
dostuff()
list = list[30:]
我建议您将列表分成 30 个元素的间隔,然后在每个间隔上调用该函数。