簡體   English   中英

Python - 如何從不是第 0 個元素而是第 x 個元素循環數組?

[英]Python - how to for loop an array from not 0th but xth element?

我有一個像這樣的for循環

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

其中:

  • TestImgPath 是輸入圖像的路徑。 鍵入字符串。 在我的情況下TestImgPath = './TestData/TestWhole' TestDataTestWhole是文件夾。
  • ImgPath 是圖像的路徑。 例如,當我打印時ImgPath =./TestData/TestWhole\XXXXX.jpg 在我的情況下,XXXX 是 00000 到 82700
  • ImgPath 是一次圖像的路徑。 例如,當我打印時ImgPaths =./TestData/TestWhole\\XXXXX.jpg 但我認為它是整個 00000-XXXXX 合二為一,因為ImgPaths像上面一樣分配。

因此,有 82700 個文件要處理,一個文件需要 24 秒。 等待它一次完成太長了。 父文件夾很大,因此我無法將父文件夾復制為 10 個副本並執行每個副本。 所以划分那個for循環可能是go的方法。 似乎它不是普通for循環,而是一個數組for循環。

那么,如何讓一個數組for循環在某個元素處開始和停止呢? 如果我想從 11111.jpg 開始,到 22222.jpg 停止,怎么辦?

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

謝謝你。

您可以使用條件語句跳過處理,直到i達到所需的起始編號,然后在i超過結束編號時break循環:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM