如何成批循环遍历python列表?

如何成批循环遍历python列表?,python,list,Python,List,一个文件包含10000行,每行有一个条目。我需要批量处理文件(小块) 在这里做什么,以便下一个循环从第51项到第100项选择条目,依此类推 如果操作不成功并且中途中断,那么只需要从失败的批次(基于DB条目)再次启动循环 我无法编写正确的逻辑代码。我应该保留两份清单吗?还是别的什么?你很接近了 chunks = (total_count - 1) // 50 + 1 for i in range(chunks): batch = data[i*50:(i+1)*50] 我非常喜欢fun

一个文件包含10000行,每行有一个条目。我需要批量处理文件(小块)

在这里做什么,以便下一个循环从第51项到第100项选择条目,依此类推

如果操作不成功并且中途中断,那么只需要从失败的批次(基于DB条目)再次启动循环

我无法编写正确的逻辑代码。我应该保留两份清单吗?还是别的什么?

你很接近了

chunks = (total_count - 1) // 50 + 1
for i in range(chunks):
     batch = data[i*50:(i+1)*50]

我非常喜欢
funcy
。此函数将为您将列表分为多个块:


我认为这是最直接、可读的方法。如果您需要重试某个批处理,您可以在循环内重试(串行),也可以在每个批处理中打开一个线程-具体取决于应用程序…

范围(0,总计数,50)
您的输入范围需要是[i*50:(i+1)*50],还有,为什么要等待批处理完成?您可以将流程数据放入线程中?请看一看,如果您不希望在
total\u count%50==0
时有任何空批处理,那么这似乎是一个不正确的解决方案。块的数量应该是
(total_count-1)//50+1
@AndersTornkvist:抓得好!编辑。
chunks = (total_count - 1) // 50 + 1
for i in range(chunks):
     batch = data[i*50:(i+1)*50]
l = [1,2,3,4,5,6,7,8,9,10]
batch_size = 3    

for i in range(0, len(l), batch_size):
    print(l[i:i+batch_size])
    # more logic here

>>> [1,2,3]
>>> [4,5,6]
>>> [7,8,9]
>>> [10}