next()函數(shù)從迭代器返回下一項(xiàng)。
next()的語(yǔ)法為:
next(iterator, default)
iterator- next()從迭代器中檢索下一項(xiàng)
default (可選)-如果迭代器已用盡,則返回此值(沒(méi)有下一項(xiàng))
next()函數(shù)從迭代器返回下一項(xiàng)。
如果迭代器已用盡,則返回default作為參數(shù)傳遞的值。
如果省略默認(rèn)(default)參數(shù),并且迭代器(iterator)已用盡,則會(huì)引發(fā)StopIteration異常。
random = [5, 9, 'cat'] # 將列表轉(zhuǎn)換為迭代器 random_iterator = iter(random) print(random_iterator) # 輸出: 5 print(next(random_iterator)) # 輸出: 9 print(next(random_iterator)) # 輸出: 'cat' print(next(random_iterator)) # 這會(huì)引起錯(cuò)誤 # iterator耗盡 print(next(random_iterator))
輸出結(jié)果
<list_iterator object at 0x7feb49032b00> 5 9 cat Traceback (most recent call last): File "python", line 18, in <module> StopIteration
列表是 可迭代的,您可以使用Python中的iter()函數(shù)從中獲取其 迭代器。
學(xué)習(xí)更多關(guān)于
我們從上述程序的最后一條語(yǔ)句中得到了一個(gè)錯(cuò)誤,因?yàn)槲覀冊(cè)噲D在沒(méi)有下一項(xiàng)可用時(shí)(迭代器已用盡)來(lái)獲取下一項(xiàng)。
在這種情況下,您可以提供默認(rèn)值作為第二個(gè)參數(shù)。
random = [5, 9] # 將列表轉(zhuǎn)換為迭代器 random_iterator = iter(random) # 輸出: 5 print(next(random_iterator, '-1')) # 輸出: 9 print(next(random_iterator, '-1')) # random_iterator is exhausted # 輸出: '-1' print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) print(next(random_iterator, '-1'))
輸出結(jié)果
5 9 -1 -1 -1
注意:在內(nèi)部,next()調(diào)用__next__()方法。