Python 的內(nèi)置函數(shù) iter

Python 內(nèi)建函數(shù)列表 > Python 的內(nèi)置函數(shù) iter

Python 的內(nèi)置函數(shù) iter() 用于創(chuàng)建一個迭代器對象,它可以將可迭代對象(如列表、元組、字典、集合等)轉(zhuǎn)換為迭代器,從而支持逐個訪問元素的操作。

基本語法

iter(iterable, sentinel)
  • iterable:必需參數(shù),表示要轉(zhuǎn)換為迭代器的可迭代對象(如列表、字符串等)。
  • sentinel:可選參數(shù),用于指定迭代停止的條件值(主要用于自定義迭代行為)。

示例說明

  1. 基本用法(無 sentinel 參數(shù))
numbers = [1, 2, 3, 4]
num_iter = iter(numbers)  # 轉(zhuǎn)換為迭代器
print(next(num_iter))  # 輸出:1
print(next(num_iter))  # 輸出:2
  1. 文件逐行讀取(常用于處理大文件)
with open('data.txt', 'r') as file:
    file_iter = iter(file.readline, '')  # 逐行讀取,直到遇到空字符串
    for line in file_iter:
        print(line.strip())
  1. 自定義迭代終止條件(使用 sentinel
import random
def generate_random():
    return random.randint(1, 10)

# 當生成的隨機數(shù)等于5時停止迭代
random_iter = iter(generate_random, 5)
for num in random_iter:
    print(num)

注意事項

  • 如果沒有更多元素可迭代,調(diào)用 next() 將拋出 StopIteration 異常。
  • 字典迭代默認返回鍵(keys),可通過 dict.items() 等方法獲取鍵值對。
  • 迭代器只能單向遍歷,無法回退或重置,遍歷結(jié)束后需重新創(chuàng)建迭代器。

應用場景

  • 處理大型數(shù)據(jù)集時節(jié)省內(nèi)存(逐項讀取而非一次性加載)。
  • 實現(xiàn)自定義迭代邏輯(如條件終止)。
  • 與生成器配合使用,支持惰性求值(lazy evaluation)。
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容