首页 > 解决方案 > Python - 如何从第 0 个元素而不是第 x 个元素循环数组?

问题描述

我有一个for这样的循环

ImgPaths = make_dataset(TestImgPath)
    for i, ImgPath in enumerate(ImgPaths):

其中:

因此,有 82700 个文件要处理,一个文件需要 24 秒。等待它一次完成太长了。父文件夹很大,因此我无法将父文件夹复制为 10 个副本并执行每个副本。因此,划分该for循环可能是要走的路。似乎它不是一个普通的for循环,而是一个数组for循环。

那么,如何使数组for循环在某个元素处开始和停止呢?如果我想从 11111.jpg 开始,到 22222.jpg 停止,怎么办?

这是源代码 https://drive.google.com/file/d/1jnE7kSK2eyXEAsTXb_4IctUEbBkZSWJa/view?usp=sharing

谢谢你。

标签: pythonarraysfor-loopimage-processingdeep-learning

解决方案


您可以使用条件语句跳过处理,直到i达到所需的起始编号,然后在超过结束编号break时循环:i

for i, ImgPath in enumerate(ImgPaths):
    if i > 22222:
        break
    elif i >= 11111:
        # process ImgPath

或用于itertools.islice将迭代限制在指定范围内:

import itertools
for ImgPath in itertools.islice(ImgPaths, 11111, 22222 + 1):
    # process ImgPath

推荐阅读