日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Python 編程速查:迅速理解 next() 函數(shù)

來(lái)源: 責(zé)編: 時(shí)間:2024-05-07 09:11:14 159觀看
導(dǎo)讀Python 的 next()函數(shù)不僅用于迭代器對(duì)象,還可處理飛迭代器任務(wù)。它返回可迭代對(duì)象的下一個(gè)元素島并將指針移至下一個(gè)元素。這比簡(jiǎn)單的循環(huán)更復(fù)雜,但若需要對(duì)迭代過(guò)程有絕對(duì)控制,則非常有用。本文從簡(jiǎn)介到深入,幫助你全面

Python 的 next()函數(shù)不僅用于迭代器對(duì)象,還可處理飛迭代器任務(wù)。它返回可迭代對(duì)象的下一個(gè)元素島并將指針移至下一個(gè)元素。這比簡(jiǎn)單的循環(huán)更復(fù)雜,但若需要對(duì)迭代過(guò)程有絕對(duì)控制,則非常有用。本文從簡(jiǎn)介到深入,幫助你全面理解 next()函數(shù)的使用方法。bis28資訊網(wǎng)——每日最新資訊28at.com

bis28資訊網(wǎng)——每日最新資訊28at.com

迭代器初識(shí)

我們都知道用for 循環(huán)和while 循環(huán)進(jìn)行迭代。但你知道 Python 的 next() 函數(shù)嗎?next() 也可用于迭代操作,讓我們一起來(lái)探索一下。bis28資訊網(wǎng)——每日最新資訊28at.com

# 簡(jiǎn)單的 for 循環(huán)進(jìn)行迭代fruits = ['蘋(píng)果', '橙子', '梨']for fruit in fruits:    print(fruit)# 蘋(píng)果# 橙子# 梨

簡(jiǎn)介 —— 迭代器對(duì)象

fruits = ['蘋(píng)果', '橙子', '梨']iterator = fruits.__iter__()print(iterator)  # <list_iterator object at 0x10adcb160>

若我們調(diào)用某個(gè)可迭代對(duì)象(比如列表、字典等)的 .__iter__() 方法,會(huì)得到一個(gè)迭代器對(duì)象。之后,該迭代器對(duì)象將和 next()函數(shù)一起用來(lái)迭代處理事物。bis28資訊網(wǎng)——每日最新資訊28at.com

print([1, 2, 3].__iter__())  # <list_iterator object at 0x10b1c3010>print('你好'.__iter__())  # <str_ascii_iterator object at 0x10b1c3010>print({1: 2, 3: 4}.__iter__())  # <dict_keyiterator object at 0x10b1f7470>

上面演示了多種不同類(lèi)型的迭代器對(duì)象。請(qǐng)注意,他們都可以與 next() 函數(shù)一同工作。bis28資訊網(wǎng)——每日最新資訊28at.com

next() 函數(shù)

fruits = ['蘋(píng)果', '橙子', '梨']iterator = fruits.__iter__()x = next(iterator)print(x)  # 蘋(píng)果

當(dāng)在迭代器對(duì)象上調(diào)用 next() 函數(shù),它會(huì):bis28資訊網(wǎng)——每日最新資訊28at.com

  • 返回可迭代對(duì)象中的下一個(gè)元素
  • 將迭代器的指針移動(dòng)到下一個(gè)元素
fruits = ['蘋(píng)果', '橙子', '梨']iterator = fruits.__iter__()print(next(iterator))  # 蘋(píng)果print(next(iterator))  # 橙子print(next(iterator))  # 梨

每次調(diào)用 next(iterator),就會(huì)返回迭代器中的下一個(gè)元素。bis28資訊網(wǎng)——每日最新資訊28at.com

fruits = ['蘋(píng)果', '橙子', '梨']iterator = fruits.__iter__()print(next(iterator))  # 蘋(píng)果print(next(iterator))  # 橙子print(next(iterator))  # 梨print(next(iterator))# Traceback (most recent call last):#   File "/Users/lzl/Documents/repos/main/a.py", line 8, in <module>#     print(next(iterator)) ##           ^^^^^^^^^^^^^^# StopIteration

當(dāng)我們的迭代器迭代全部元素后,再試圖 next(iterator),就會(huì)收到一個(gè) StopIteration 異常。bis28資訊網(wǎng)——每日最新資訊28at.com

使用 next() 迭代處理

fruits = ['蘋(píng)果', '橙子', '梨']iterator = fruits.__iter__()while True:    try:        x = next(iterator)        print(x)  # 或者你想做的其他操作    except:        break

由于當(dāng)?shù)竭_(dá)可迭代對(duì)象的末尾(實(shí)質(zhì)上是我們的列表末尾)時(shí)會(huì)觸發(fā) StopIteration 異常,此時(shí)需要使用 try except塊來(lái)捕獲該異常,并跳出 while 循環(huán)。bis28資訊網(wǎng)——每日最新資訊28at.com

為什么要這么做呢?

這顯然比簡(jiǎn)單的 for 循環(huán)或 while 循環(huán)更麻煩。但是,如果想要對(duì)迭代過(guò)程有完全的控制,這可能會(huì)很有用。bis28資訊網(wǎng)——每日最新資訊28at.com

def generate_number():    n = 1    while True:        yield n        n += 1generator = generate_number()print(generator)first = next(generator)second = next(generator)third = next(generator)print(first, second)  # 1 2 3

如果我們只想從生成器對(duì)象中獲取有限數(shù)量的對(duì)象時(shí)——這樣,就不必處理生成前 N 個(gè)元素再使用 break 的邏輯了bis28資訊網(wǎng)——每日最新資訊28at.com

結(jié)論

Python 的 next()函數(shù)不僅用于迭代器對(duì)象,還可處理飛迭代器任務(wù)。它返回可迭代對(duì)象的下一個(gè)元素島并將指針移至下一個(gè)元素。這比簡(jiǎn)單的循環(huán)更復(fù)雜,但若需要對(duì)迭代過(guò)程有絕對(duì)控制,則非常有用。本文從簡(jiǎn)介到深入,幫助你全面理解 next()函數(shù)的使用方法。bis28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-86999-0.htmlPython 編程速查:迅速理解 next() 函數(shù)

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: React 合成事件和 JavaScript 事件有什么區(qū)別?

下一篇: 16 個(gè)在面試前需要知道的系統(tǒng)設(shè)計(jì)概念

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top 主站蜘蛛池模板: 双流县| 鹤峰县| 修文县| 潼南县| 巩义市| 得荣县| 永春县| 临夏县| 福安市| 库伦旗| 平遥县| 沾化县| 石家庄市| 禹城市| 泸西县| 宁晋县| 上杭县| 东平县| 奉新县| 洪雅县| 荔波县| 莫力| 子长县| 南投县| 绥德县| 岐山县| 武威市| 高要市| 汉川市| 东海县| 鹤岗市| 曲麻莱县| 平阴县| 农安县| 民丰县| 莲花县| 景泰县| 齐河县| 班玛县| 乌审旗| 岢岚县|