Python如何实现从列表中按固定长度逐次选取连续元素块
实现方法
直接用列表切片配合固定步长遍历即可完成需求,代码简单高效:
exa = list(range(1, 1001)) batch_size = 24 for i in range(0, len(exa), batch_size): current_batch = exa[i:i+batch_size] # 此处写入你对当前24个元素的处理逻辑 print(current_batch)
上述代码中range的第三个参数设置为24,每次迭代的起始索引会按0、24、48……依次递增,通过切片exa[i:i+batch_size]就能拿到连续的24个元素。如果最后剩余元素不足24个,默认会返回剩余的所有元素,如果你只需要处理刚好满24个的批次,加个长度判断过滤即可:
exa = list(range(1, 1001)) batch_size = 24 for i in range(0, len(exa), batch_size): current_batch = exa[i:i+batch_size] if len(current_batch) != batch_size: break # 处理逻辑 print(current_batch)
如果需要频繁使用分批逻辑,可以封装成生成器函数复用:
def batch_generator(lst, batch_size): for i in range(0, len(lst), batch_size): yield lst[i:i+batch_size] # 调用示例 exa = list(range(1, 1001)) for batch in batch_generator(exa, 24): # 处理逻辑 print(batch)
内容的提问来源于stack exchange,提问作者blkjim99
相关产品推荐
相关产品推荐

