固定时间的Python循环

2024-04-25 22:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的循环:

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个值,最后一次取10个值,剩下的就结束了。在

这样的事情是可能的吗?还是我需要将我的列表分成许多小列表,然后一次运行一个?在


Tags: inself脚本列表forobjectsdefargs
3条回答

试试这个

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个元素后执行操作,可以执行以下操作:

^{pr2}$

相关问题 更多 >