M=2
for i in range(20):
for item in range(M):
print (data[item])
item=item+1
M=M+10
基本上我想分批获取数据,我的意思是我想循环20次,每次我想得到M数据
以上操作不起作用,项设置为0 任何想法如何实现?
这是一个更好的例子
outlist = []
for m in range(20):
for i in range(M):
out=i
outlist.append(out)
print(outlist)
输出将是:
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
我希望输出为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, .........]
答案 0 :(得分:0)
以下是批处理或分块中使用列表的典型方法:
batch_size = 20
data = [1, 1, 2, 3, 5, 8, 13, ...]
for i in range(0, len(data), batch_size):
print(data[i:i+batch_size])
如果您有迭代器而不是列表,则需要使用itertools.islice
来完成类似的事情:
from itertools import islice
batch_size = 20
data = (i*2 for i in range(100))
while True:
chunk = list(islice(data, 0, batch_size))
if not chunk:
break
print(chunk)