python 迭代器

2022-09-23 04:52:06 字數 788 閱讀 2295

這裡的迭代可以指for迴圈,在python中,對於像list,dict和檔案等而言,都可以使用for迴圈,但是它們並不是迭代器,它們屬於可迭代物件。

什麼可迭代物件

最簡單的解釋:可以使用for...in...語句進行迴圈的物件,就是可迭代物件(iterable),可以使用isinstance()方法進行判斷。

from collections import iterable 

type = isinstance('python', iterable)

print type

什麼是迭代器

迭代器指的是可以使用next()方法來**的物件,可以對可迭代物件使用iter()方法,將其轉換為迭代器。

temp = iter([1, 2, 3])

print type(temp)

print next(temp)

此時temp就是一個迭代器。所以說,迭代器基於兩個方法:

iter 返回迭代器本身

可理解為可被next()函式呼叫並不斷返回下一個值的物件就是迭代器,在定義一個裝飾器時將需要同時定義這兩個方法。

迭代器的優勢

在構建迭代器時,不是將所有的元素一次性的載入,而是等呼叫next方法時返回元素,所以不需要考慮記憶體的問題。

迭代器應用場景

那麼,具體在什麼場景下可以使用迭代器呢?

Python迭代器

前面我們學過迭代,可以直接用for迴圈的都是可迭代物件,可用於for迴圈的資料型別有以下幾種 集合資料型別,如list tuple dict...

Python 迭代器

本文參考部落格 1 在講迭代器之前,我們先來講一下迭代,什麼是迭代呢? 可以將某個資料集內的資料 一個挨著一個的取出來 ,就叫做迭代。比如我...

python 迭代器

這裡只討論一個特殊的方法 iter ,這個方法是迭代器規則的基礎 迭代器規則 迭代的意思就是重複做一些事很多次 就像在迴圈中做的那樣。到現在...