zip函式中的幾個迭代器元素數目不相同會怎麼樣

2021-10-07 14:20:48 字數 676 閱讀 5993

它的功能可以看這個

在這裡需要注意一點,當通過for迴圈遍歷時,遍歷會在某一iter遍歷到頭後停止,也就是當其中乙個iter的元素數量小於另乙個,那麼元素多的iter的剩餘元素不會被遍歷。

這個主要是我在看faster-rcnn原始碼時看到的,覺得很不錯。其中的**如下:

for iter_ in

( pred_bboxes, pred_labels, pred_scores,

gt_bboxes, gt_labels, gt_difficults):if

next

(iter_,

none)is

notnone

:raise valueerror(

'length of input iterables need to be same.'

)

這裡的pred_bboxes, pred_labels, pred_scores, gt_bboxes, gt_labels, gt_difficults都是迭代器,整個**的意思是:上面的 six.moves.zip(上面**之前的語句,很長所以沒寫)遍歷會在某一iter遍歷到頭後停止,由於pred_bboxes等是全域性iter物件,我們此時繼續呼叫next取下一資料,如果有任一資料不為none,那麼說明他們的len是不相等的 有悖常理,資料錯誤

迭代器訪問容器中的元素

學習了c 中迭代器的相關知識,iterator迭代器它提供了訪問容器中元素的介面。迭代器範圍是由一對迭代器來確定的,兩個迭代器分別指向容器中的首元素和為元素之後的位置,這兩個迭代器通常被稱為begin和end 值得注意的是迭代器end不會指向容器中的任何元素。迭代器使用與指標頗為相似,訪問容器內部的...

c STL中迭代器刪除元素

對於序列容器vector,deque來說,使用erase itertor 後,後邊的每個元素的迭代器都會失效,但是後邊每個元素都會往前移動乙個位置,當前的迭代器指標直接指向了下乙個元素 對於關聯容器map set 來說,使用了erase iterator 後,當前元素的迭代器失效,但是其結構是紅黑樹...

Python 的迭代器與zip詳解

目錄 首先丟擲乙個困擾本人許久的問題 nums 1,2,3,4,5,6 numsiter iter nums for in zip numsiter 3 print print list numsiter 則控制台輸出如何?1.對於支援迭代的集合物件,可以建立其迭代器物件。迭代器物件儲存了可迭代物件...