python中的next()以及iter()函數


我們首先要知道什么是可迭代的對象(可以用for循環的對象)Iterable:

一類:list,tuple,dict,set,str

二類:generator,包含生成器和帶yield的generatoe function

 

而生成器不但可以作用於for,還可以被next()函數不斷調用並返回下一個值,可以被next()函數不斷返回下一個值的對象稱為迭代器:Iterator

 

生成器都是Iterator對象,但list,dict,str是Iterable,但不是Iterator,要把list,dict,str等Iterable轉換為Iterator可以使用iter()函數

next()用法:

next(iterator[, default])
iterator -- 可迭代對象
default -- 可選,用於設置在沒有下一個元素時返回該默認值,如果不設置,又沒有下一個元素則會觸發 StopIteration 異常。

#這里的-1是默認值;當迭代到異常或什么情況,輸出-1;當然也可以改為其他值

>>> list_ = [1,2,3,4,5]
>>> it = iter(list_)
>>> next(it,'-1')
1
>>> next(it,'-1')
2
>>> next(it,'-1')
3
>>> next(it,'-1')
4
>>> next(it,'-1')
5
>>> next(it,'-1')
'-1'
---------------------
作者:阿_波_
來源:CSDN
原文:https://blog.csdn.net/li1615882553/article/details/79360172
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 

 

t、tuple等都是可迭代對象,我們可以通過iter()函數獲取這些可迭代對象的迭代器。然后我們可以對獲取到的迭代器不斷使⽤next()函數來獲取下⼀條數據。iter()函數實際上就是調⽤了可迭代對象的 __iter__ ⽅法。

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> li = [ 11 , 22 , 33 , 44 , 55 ]
>>> li_iter = iter (li)
>>> next (li_iter) 11
>>> next (li_iter) 22
>>> next (li_iter) 33
>>> next (li_iter) 44
>>> next (li_iter) 55
>>> next (li_iter)
Traceback (most recent call last):
File "<stdin>" , line 1 , in <module>
StopIteration
>>>

注意:當我們已經迭代完最后⼀個數據之后,再次調⽤next()函數會拋出 StopIteration的異常,來告訴我們所有數據都已迭代完成,不⽤再執⾏ next()函數了。

以上這篇對python中的iter()函數與next()函數詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

next(iterator[, default]) iterator --可迭代對象 default --可選,用於設置在沒有下一個元素時返回該默認值,如果不設置,又沒有下一個元素則會觸發 StopIteration 異常。

list_ = [1, 2, 3, 4, 5] it = iter(list_) for i in range(5): line = next(it) print("第%d 行, %s" %(i, line)) 輸出結果: 第0 行, 1 第1 行, 2 第2 行, 3 第3 行, 4 第4 行, 5

examples, labels = next(iter(raw_test_data)) # 第一個批次
print("EXAMPLES: \n", examples, "\n")
print("LABELS: \n", labels)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM